Intereting Posts
Объединение «глубины» с «include» в wp_list_pages () Как настроить короткий код с помощью настраивателя добавить таксономию в качестве одного из пунктов меню Могу ли я проверить nonce, который был сгенерирован на другом сайте WP? Добавить панель для редактирования сообщения Какой крюк запускается первым (init, … или ???) Как я могу контролировать, если пост обновлен Неустранимая ошибка: вызов неопределенной функции is_multisite () Расширенный поиск для WordPress Michael Soriano touch mobile Запрос сообщений из текущей категории с использованием переменной в качестве аргумента массива Шаблон пользовательской таксономии WordPress не работает Как включить форму для WP_Filesystem ()? Ошибка Timthumb 500 при нескольких запросах – не на одной нагрузке Избегайте «загрузки» 777 разрешений: потенциальная угроза или чистое решение? Автозагрузка класса PHP – работающий снаружи, но не внутри плагина WordPress

wp_list_categories () – текущий класс cat также внутри сообщений?

Я написал свою собственную функцию, чтобы перечислить все таксономические термины определенной таксономии …

function wr_list_taxonomy($taxonomy, $orderby, $hierarchical) { $show_count = 0; $pad_counts = 0; $title = ''; $args = array( 'taxonomy' => $taxonomy, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title ); return wp_list_categories( $args ); } 

Таким образом, эта функция работает точно так же, как и wp_list_categories() а также выделяет класс «текущий кот», когда я нахожусь на странице терминов.

Итак, представьте мою структуру URL …

 www.mysite.com/term //current-cat works perfect www.mysite.com/term/a-post-associated-with-this-term //current-cat not assigned 

Есть ли шанс также сделать класс «текущий кот» работать, как только я нахожусь в должности, но в этой «категории», как указано выше?

Обновить:

Функция wr_list_taxonomy() вызывается внутри моего файла header.php .

 <nav id="main-nav"> <ul class="wr-nav" role="navigation"> <?php global $post; $taxonomy = 'event_type'; $term_id = 0; $terms = wp_get_post_terms( $post->ID, $taxonomy, array("fields" => "ids") ); if ( !empty($terms) ) $term_id = $terms[0]; wr_list_taxonomy($taxonomy, 'name', 1, $term_id); ?> </ul> </nav> 

Я обновил wr_list_taxonomy() до вашей версии.

Кроме того, у меня есть еще одна функция, которая может быть релевантной для того, что я хочу …

 /** * Add category-slug as classname to wp_list_categories() */ add_filter('wp_list_categories', 'add_slug_css_list_categories', 10, 2); function add_slug_css_list_categories($list, $args) { if ( $args["taxonomy"] == "event_type" ) { $cats = get_terms('event_type'); $class = 'term term-'; } else { $cats = get_categories(); $class = 'category-'; } foreach( $cats as $cat ) { $find = 'cat-item-' . $cat->term_id . '"'; $replace = $class . $cat->slug . '"'; $list = str_replace( $find, $replace, $list ); $find = 'cat-item-' . $cat->term_id . ' '; $replace = $class . $cat->slug . ' '; $list = str_replace( $find, $replace, $list ); } return $list; } 

Эта функция добавляет «category-slug» к каждому элементу <li> в функции wr_list_taxonomy() . Это прекрасно работает.

Мне просто нужно, чтобы класс «current-cat» также применялся, когда я нахожусь на сайте single.php (post), который связан с «текущей категорией», в которой я находится.

Да, конечно. Вам просто нужно получить термин id и поместить его в args. Проверить wp_list_categories()

 function wr_list_taxonomy($taxonomy, $orderby, $hierarchical, $cat_id) { $show_count = 0; $pad_counts = 0; $title = ''; $cat_id = 0; $args = array( 'taxonomy' => $taxonomy, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title, 'current_category' => $cat_id ); return wp_list_categories( $args ); } 

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

Как получить идентификатор категории?

Например:

  global $post; $taxonomy = 'my-tax'; $term_id = 0; if(is_singular('post')){ // post type is optional. $terms = wp_get_post_terms( $post->ID, $taxonomy, array("fields" => "ids") ); if(!empty($terms)) $term_id = $terms[0]; //we need only one term id } wr_list_taxonomy($taxonomy, $orderby, $hierarchical, $term_id); 

Это просто простой пример, и есть другие способы сделать это. Это зависит от того, где вы используете код.