Показывать пользовательский тип записи, отфильтрованный по категориям
Я хотел бы иметь пользовательский тип записи, который содержит несколько ползунков для отображения на каждой странице категории (точный 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.
Подумал, что он должен показывать только ползунок в определенной категории, а не во всех категориях.
Поэтому я прошу запрос для вызова только правильного слайдера.
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;
?>
Настройте его так, как вам нравится.
ПРИМЕЧАНИЕ: ПОСЛЕ ВСЕХ ШАГОВ. Перейдите на страницу Настройки > Постоянные ссылки. Это сохранит изменения, внесенные при регистрации пользовательского типа записи.