Intereting Posts
Предотвращение добавления дублирующихся страниц Показывать измененное время, если сообщение действительно изменено Категория исключения Изменение панели инструментов edit.php Предотвратите установку cookie style.css и кеширование файлов ACF проверяет, имеет ли переменная http, если else возвращает строку Вызов функции в обработчике коротких кодов WordPress Как выполнить запрос с SQL Server для публикации на пользовательской странице зарегистрированного пользователя. Как ограничить доступ к видео на прямой URL-адрес Отдельная секция комментариев для типа сообщения на панели управления Как страницы URL-адреса WordPress зависят от настроек постоянной ссылки? Выйти из системы и удалить файлы cookie с клиентской стороны? WordPress fountainpress header покрывает верхнюю панель Дамп содержимого переменной внутри обратного вызова фильтра / крюка, который выполняется во время сохранения сообщения Постоянная ссылка на сообщения по умолчанию и пользовательскую таксономию

пользовательские типы сообщений, pre_get_posts, wp_list_categories

Итак, я знаю, что могу сделать эту работу круговым путем, но я думаю, что я делаю что-то неправильно в первую очередь. По существу, ситуация такова.

У меня есть пользовательский тип сообщения, должности которого – в зависимости от некоторых условий (время фактически) должны или не должны отображаться.

Этот я могу заставить работать довольно хорошо, как это (несколько сокращенно, чтобы сделать это менее грязным)

add_action( 'pre_get_posts', array( $this, 'my_tm_pre_get_posts')); function my_tm_pre_get_posts($query){ if (isset($query->query_vars['post_type']) && $query->query_vars['post_type']=='my_post_type') { $array2exclude=array(1, 2, 3); /**a conditional array depending on time of day etc)**/ $query->set( 'post__not_in', $array2exclude ); } return $query; } 

однако у меня также есть навигация категорий этого типа сообщения так:

 <?php // some_args ..... 'hide_empty' => 1, 'show_count' => 1, // some more args... echo wp_list_categories( $args ); ?> 

который отображает все правильные категории этого настраиваемого типа / таксономии. Все идет нормально.

Однако, если я исключу все сообщения определенной категории в my_tm_pre_get_posts, я также ожидал бы (ну, надеюсь, именно это я и пытаюсь), что эта категория в wp_list_categories также исключается или, если количество сообщений просто уменьшается, но> 0, счет также будет соответствующим образом отражен в show_count ….

Короче говоря, проблема, которую я не могу понять, – это способ, который отражает исключенные должности в навигации. может быть, это просто счет или фактически исключая целую категорию, если счет == 0 после действия pre_get_posts

Конечно, когда вы получаете «$ array2exclude» выше, я могу также проверить, означает ли это, что категория будет пустой, а затем просто исключит категорию из навигации. Но это действительно не влияет на счет в навигации, и у меня нет чувства, что это правильный или самый элегантный способ сделать это …

Любая помощь / подсказки / указатели оцениваются. С удовольствием предоставляем больше кода, если требуется для курса. просто пытаясь сохранить его просто

Solutions Collecting From Web of "пользовательские типы сообщений, pre_get_posts, wp_list_categories"