Показывать пользовательский тип записи, отфильтрованный по категориям


Я хотел бы иметь пользовательский тип записи, который содержит несколько ползунков для отображения на каждой странице категории (точный category.php), по одному для каждого, как и планировалось.

Все ползунки были отнесены к соответствующей категории.

В настоящее время я использую http://wordpress.org/plugins/custom-post-type-ui / для создания пользовательского типа записи с именем: слайдер.

И у меня есть приведенный ниже код для отображения всех сообщений из категории при нажатии имени кошки в меню. Оно конечно, работает нормально.

<?php $cat = get_the_category(); $cat = $cat[0]; ?>
<?php query_posts($query_string . '&cat='. $cat->cat_ID .''); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php the_content(); ?> 
  <?php endwhile; else: endif; ?>

Но проблема в том, что я не могу отфильтровать слайдер (пользовательский тип записи) по категориям.

Как только я вызываю wp_query, он разворачивает все ползунки и игнорирует мой аргумент get cat id.

Подумал, что он должен показывать только ползунок в определенной категории, а не во всех категориях.

Поэтому я прошу запрос для вызова только правильного слайдера.

Author: Pat J, 2014-02-24

1 answers

Я разобрался с вашей проблемой и нашел решение (насколько я понял проблему).

Это работает следующим образом:

Регистрация типа записи под названием: ползунки с таксономией под названием ползунок.

Это создаст тип записи, в котором вы сможете хранить все свои слайдеры и классифицировать их с помощью этой пользовательской таксономии, называемой слайдером.

КОД для регистрации типа сообщения. ( это входит functions.php)

//Custom Post Type Sliders
add_action('init','post_type_slider');
function post_type_slider(){
    register_post_type('sliders',
        array(
            'labels' => array(
                'name'          =>  'Sliders',
                'singular_name' =>  'Sliders',
                'menu_name'     =>  'Sliders',
                'all_items'     =>  'All Sliders',
                'add_new'       =>  'Add A Slider',
                'add_new_item'  =>  'Add New Slider'
                ),
            'public'    => true,
            'supports'  => array(
                            'title',
                            'post-formats',
                            'tags',
                            'editor'
                            ),
            'show_in_admin_bar' =>  true,
            'has_archive'   =>  true
            )
        );

        //Slider Taxanomy Labels
        $labels = array(
            'name'                  => _x( 'Select Slider', 'Taxonomy plural name', 'text-domain' ),
            'singular_name'         => _x( 'Sliders', 'Taxonomy singular name', 'text-domain' ),
            'search_items'          => __( 'slider', 'text-domain' ),
            'all_items'             => __( 'All Sliders', 'text-domain' ),
            'edit_item'             => __( 'Edit Slider', 'text-domain' ),
            'update_item'           => __( 'Update Slider', 'text-domain' ),
            'add_new_item'          => __( 'Add New Slider', 'text-domain' ),
            'new_item_name'         => __( 'New Slider Name', 'text-domain' ),
            'add_or_remove_items'   => __( 'Add or remove Slider', 'text-domain' ),
            'menu_name'             => __( 'Sliders', 'text-domain' ),
        );
        //Slider Taxonomy Arguments
        $slider_args = array(
            'labels'            => $labels,
            'public'            => true,
            'show_in_nav_menus' => true,
            'show_admin_column' => false,
            'hierarchical'      => true,
            'show_tagcloud'     => true,
            'show_ui'           => true,
            'query_var'         => true,
            'rewrite'           => true,
        );

        register_taxonomy( 'slider', array( 'sliders' ), $slider_args );
    }

Теперь, когда я создал тип сообщения, который будет собирать все сообщения, связанные с разными ползунками. Теперь следующий шаг - создать пользовательскую страницу, которая может отображать эти записи на основе выбранной таксономии. Лучший способ показать - это создать taxonomy-slider.php в каталоге темы. Эта страница будет автоматически перехватывать сообщения на основе категорий слайдеров.

Создать taxonomy-slider.php и вставьте этот код:

<?php
    while(have_posts()):
        the_post();
        the_title();
    endwhile;
?>

Настройте его так, как вам нравится.

ПРИМЕЧАНИЕ: ПОСЛЕ ВСЕХ ШАГОВ. Перейдите на страницу Настройки > Постоянные ссылки. Это сохранит изменения, внесенные при регистрации пользовательского типа записи.

 1
Author: Sudeep K Rana, 2014-02-25 05:36:05