Задать вопрос
@mibo

Темизация Wordpress: не выводятся посты по терминам таксономии. В чем может быть ошибка?

Разрабатываю тему для wordpress. Столкнулся с проблемой:
Зарегистрировал новый тип контента "Фильм". Добавил в functions.php код:
function custom_film_type() {

    $labels = array(
        'name'                => _x( 'Фильмы', 'Post Type General Name', 'text_domain' ),
        'singular_name'       => _x( 'Фильм', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'           => __( 'Фильмы', 'text_domain' ),
        'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
        'all_items'           => __( 'Все фильмы', 'text_domain' ),
        'view_item'           => __( 'Просмотреть фильм', 'text_domain' ),
        'add_new_item'        => __( 'Добавить фильм', 'text_domain' ),
        'add_new'             => __( 'Добавить фильм', 'text_domain' ),
        'edit_item'           => __( 'Редактировать фильм', 'text_domain' ),
        'update_item'         => __( 'Обновить фильм', 'text_domain' ),
        'search_items'        => __( 'Искать фильм', 'text_domain' ),
        'not_found'           => __( 'Не найдено', 'text_domain' ),
        'not_found_in_trash'  => __( 'В корзине не найдено', 'text_domain' ),
    );
    $args = array(
        'label'               => __( 'Films', 'text_domain' ),
        'description'         => __( 'Описание фильма', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( ),
        'taxonomies'          => array('film_year'),
        'hierarchical'        => true,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
        'rewrite'        =>
            array('slug' => 'films'),
        'supports'       =>    array(
            'title',
            'editor',
            'excerpt',
            'trackbacks',
            'custom-fields',
            'comments',
            'revisions',
            'thumbnail',
            'author',
            'page-attributes',),
    );
    register_post_type( 'film', $args );
    //flush_rewrite_rules();

}

add_action( 'init', 'custom_film_type', 0 );


Добавил свою таксономию для фильмов:

add_action( 'init', 'create_film_taxonomies', 0 );

function create_film_taxonomies() {
    

    // Add new taxonomy, NOT hierarchical (like tags)
    $labels = array(
        'name'                       => _x( 'Год', 'taxonomy general name' ),
        'singular_name'              => _x( 'Год', 'taxonomy singular name' ),
        'search_items'               => __( 'Поиск года' ),
        'popular_items'              => __( 'Популярные годы' ),
        'all_items'                  => __( 'Все годы' ),
        'parent_item'                => null,
        'parent_item_colon'          => null,
        'edit_item'                  => __( 'Редактировать год' ),
        'update_item'                => __( 'Обновить год' ),
        'add_new_item'               => __( 'Добавить год' ),
        'new_item_name'              => __( 'Добавить название года' ),
        'separate_items_with_commas' => __( 'Годы разделяются запятыми' ),
        'add_or_remove_items'        => __( 'Добавить или удалить год' ),
        'choose_from_most_used'      => __( 'Выбрать из часто используемых' ),
        'not_found'                  => __( 'Год не найден' ),
        'menu_name'                  => __( 'Год' ),
    );

    $args = array(
        'hierarchical'          => false,
        'labels'                => $labels,
        'show_ui'               => true,
        'show_admin_column'     => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'             => true,
        'rewrite'               => array( 'slug' => 'films-year' ),
    );

    register_taxonomy( 'film_year', 'film', $args );
}


Создал файл в корне папки с темой taxonomy-film_year.php и добавил туда следующий код:

<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );?>
        <?php //print_r($term); ?>

            <h1 class="year-title">Год: <?php echo apply_filters( 'the_title', $term->name ); ?></h1>

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


В итоге на странице термина таксономии выводится только значение самого термина: "Год: 2014"
Сами же посты не выводятся. Не могу понять, в чем причина, где допустил ошибку.
Подскажите, пожалуйста.
  • Вопрос задан
  • 2460 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
OlegLazarenko
@OlegLazarenko
Добавьте в конец файла taxonomy-film_year.php следующее

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br>
<?php endwhile; endif;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы