Intereting Posts
Отображение внешнего домена для WordPress, установленного на субдомене Включить название в div? Как я могу увидеть, где в моих темах и плагинах используются определенные размеры изображений? Расширенные настраиваемые поля: Настройте дату начала выбора даты (необходимо выбрать год 1500 и далее) В архиве категорий отображаются все сообщения, а не определенная категория Пользовательский столбец с сортировкой в ​​почтовом продукте идентификатор сообщения не отображается дезинфекция / экранирование плагинов Возможно ли иметь динамический post id # в add_menu_page ()? Использование пользовательских сообщений с метабоксами и выпадающими списками Если таксономия показывает класс активных Сообщения в блоге на одном субдомене, страницы на другом Как я могу остановить функцию от кодирования объекта? Войдите в систему с помощью PHPBB на странице WordPress? WooCommerce: изменение страны по умолчанию на странице корзины

Отображение персонализированного типа сообщений на страницах категорий, но не в списках блога

Я думаю, что это довольно простая проблема, но у меня нет головы.

Вопрос: как я могу получить свои пользовательские сообщения, чтобы показывать только в архивах категорий, но не на странице с объявлениями блога?

Предпосылки: У меня есть пользовательское сообщение типа «видео», с has_archive true и «таксономии» => массив ('category', 'post_tag'). Я хочу использовать стандартные категории с этим настраиваемым типом сообщения.

Я успешно просмотрел страницы своей категории, установив post_type и используя hook pre_get_posts следующим образом:

function my_query_post_type($query) { if ( is_home() && false == $query->query_vars['suppress_filters'] ) $query->set( 'post_type', array( 'post', 'video', 'attachment' ) ); return $query; } add_filter('pre_get_posts', 'my_query_post_type'); 

Если я не использую pre_get_posts, то мои видео не отображаются – как и ожидалось.

Тем не менее, теперь моя страница с сообщениями в блоге показывает пользовательские сообщения – как и ожидалось, потому что я изменил post_type в запросе.

Вопрос: как я могу получить свои пользовательские сообщения, чтобы показывать только в архивах категорий, но не на странице с объявлениями блога?

Solutions Collecting From Web of "Отображение персонализированного типа сообщений на страницах категорий, но не в списках блога"

Это может быть слишком упрощенным, но вы пытались изменить is_home() на is_category() в этой строке:

 if ( is_home() && false == $query->query_vars['suppress_filters'] ) 

т.е. изменить его на это:

 if ( is_category() && false == $query->query_vars['suppress_filters'] ) 

Во всяком случае, стоит …

Это непросто объяснить, но если кто-то еще увидит проблему, они будут благодарны, так как я не поймал эту ошибку до нескольких месяцев позже, добавив некоторые другие настройки. Я узнал, что !is_admin() необходимо для предотвращения запуска этого запроса на странице администрирования. Произошла ошибка, когда я дважды фильтровал строку в категории для переключения между сообщениями из двух разных категорий. Ошибка не возникнет, если я только один раз отфильтрую. Во второй попытке фильтрации всегда возникала проблема. Это переключение между категориями было важно для меня, поскольку я добавил несколько дополнительных полей быстрого редактирования для сортировки сообщений.

Поэтому я добавил !is_admin() который устранил проблему.

 is_category() && (!is_admin()) && false == $query->query_vars['suppress_filters'] 

мой URL-адрес был следующим уродливым, после второй попытки повторного фильтрации по категории во второй раз:

edit.php?post_status=all&post_type=Array&_wpnonce=09d0e899fa&_wp_http_referer=%2Fironglasslighting.org%2Fwp-admin%2Fedit.php%3Fs%26post_status%3Dall%26post_type%3Dproduct%26action%3D-1%26m%3D201112%26cat%3D31%26paged%3D1%26mode%3Dlist%26action2%3D-1&action=-1&m=201112&cat=27&paged=1&mode=list&action2=-1