Intereting Posts
Добавить класс в статическое меню Получить список таксономий, связанных с пользователями Разрешить пользователям создавать сообщения без входа в систему? Включить таблицу стилей печати Как регистрировать изменения базы данных во время обновления? Как узнать, какой обработчик зарегистрирован для короткого кода Найти правильный «текстовый домен» в теме Перевод темы без файлов POT Пользовательский код загружаемого приложения. Почти готово! Получить идентификатор категории из категории slug (не работает) Как увеличить размер изображения, возвращенный Flickr oEmbed в Twenty Twelve theme Ограничить загрузку по типу файла только для определенного типа сообщений Использовать шаблон страницы вместо персонализированного архива типа сообщения Удалить слизь из пользовательского типа сообщения Использование 'child_of' в get_pages () и wp_list_pages ()

пользовательские типы сообщений, 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» выше, я могу также проверить, означает ли это, что категория будет пустой, а затем просто исключит категорию из навигации. Но это действительно не влияет на счет в навигации, и у меня нет чувства, что это правильный или самый элегантный способ сделать это …

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