@run182

Как в wordpress фильтровать посты по категориям?

Помогите, пожалуйста, разобраться.
Получили в наследство код, который создает новую таксономию. Нужно при выводе настроить фильтр по "категориям" постов.
Когда подставляю в массив category => tagID, ничего не выводится вообще.
Ниже привожу код вывода постов:
<?php $posts = get_posts( array(
					'numberposts'     => 10, // тоже самое что posts_per_page
					'offset'          => 0,
					'category'        => 42,
					'orderby'         => 'post_date',
					'order'           => 'DESC',
					'include'         => '',
					'exclude'         => '',
					//'tag'         => 'advert/требуются',
					'post_type'       => 'advert_types',
					'post_mime_type'  => '', // image, video, video/mp4
					'post_parent'     => '',
					'post_status'     => 'publish'
				) ); 
				foreach($posts as $post){ setup_postdata($post); ?>
					<div class="advert-item">
						<a href="#" class="advert-header"><?php the_title() ?></a>
						<div class="detail-advert-info">(<?php the_time("H:i d.m.Y") ?>)</span></div>
						<div class="advert-detail" style="display: none;">
							<?php the_post_thumbnail('','class=prewiev-anons')?>
							<?php the_content() ?>
						</div>
					</div>
				<?php }
				wp_reset_postdata(); ?>


Далее привожу код из functions.php:
add_action('init', 'add_advert_types');
function add_advert_types(){
	$labels = array(
		'name' => 'Объявления',
		'singular_name' => 'Объявление', // админ панель Добавить->Функцию
		'add_new' => 'Добавить объявление',
		'add_new_item' => 'Добавить объявление', // заголовок тега <title>
		'edit_item' => 'Изменить объявление',
		'new_item' => 'Новое объявление',
		'all_items' => 'Все объявления',
		'view_item' => 'Просмотр объявления на сайте',
		'search_items' => 'Искать объявление',
		'not_found' =>  'Объявлений не найдено.',
		'not_found_in_trash' => '',
		'menu_name' => 'Частные объявления' // ссылка в меню в админке
	);
	
	$args = array(
		'labels' => $labels,
		'public' => true,
		'menu_position' => 5,
		'has_archive' => true,
		'supports' => array('title','editor', 'thumbnail','excerpt', 'custom-fields'),
		'taxonomy' => array('advert_category'),
	); 
	
	register_post_type('advert_types', $args );
}
function add_advert_taxonomies(){
	register_taxonomy('advert_category',
		array('advert_types'),
		array(
			'hierarchical' => true,
			/* true - по типу рубрик, false - по типу меток, 
			по умолчанию - false */
			'labels' => array(
				/* ярлыки, нужные при создании UI, можете
				не писать ничего, тогда будут использованы
				ярлыки по умолчанию */
				'name' => 'Категории объявлений',
				'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' => 'Выбрать из наиболее часто используемых категорий',
				'menu_name' => 'Категории объявлений'
			),
			'public' => true, 
			/* каждый может использовать таксономию, либо
			только администраторы, по умолчанию - true */
			'show_in_nav_menus' => true,
			/* добавить на страницу создания меню */
			'show_ui' => true,
			/* добавить интерфейс создания и редактирования */
			'show_tagcloud' => true,
			/* нужно ли разрешить облако тегов для этой таксономии */
			'update_count_callback' => '_update_post_term_count',
			/* callback-функция для обновления счетчика $object_type */
			'query_var' => true,
			/* разрешено ли использование query_var, также можно 
			указать строку, которая будет использоваться в качестве 
			него, по умолчанию - имя таксономии */
			'rewrite' => array(
			/* настройки URL пермалинков */
				'slug' => 'advert', // ярлык
				'hierarchical' => false // разрешить вложенность
 
			),
		)
	);

}
add_action( 'init', 'add_advert_taxonomies', 0 );
  • Вопрос задан
  • 1163 просмотра
Пригласить эксперта
Ответы на вопрос 1
@stoik_kpd
Вывести через WP_Query и не ломать себе голову
wp-kama.ru/function/wp_query
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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