Intereting Posts
Предотвращение экранирования котировок при использовании запроса поиска и замены в базе данных Создание пользователей (пользователей) с помощью API настроек Отобразить имя команды как полное имя Как изменить название шрифта полного капитала моего блога WordPress? Получить содержимое страницы по ID (из плагина) Содержимое wp_head-крючка отображается вверху RSS-канала Есть ли способ получить данные привязки? URL rewrite и пользовательские запросы vars Удалить текст в тегах заголовка в выдержке Обновите значение редактора содержимого каждой страницы со значением расширенного настраиваемого поля на этой странице Отключить перетаскивание панели управления Как я могу сделать wp_nav_menu () поддержку тегов? Успешное или сообщение об ошибке после запуска mysql-кода в functions.php Получить пользовательское описание таксономии с тегами абзаца Сделать присвоение должности определенной категории, эквивалентной присвоению ее всем категориям

Как добавить текущий пользовательский таксономии к телу

В моей теме используется пользовательская таксономия, называемая «kbsection», и есть множество разделов (вместо категорий). Существует также пользовательский тип сообщения, и должности назначаются разделам.

Мне нужно погладить заголовок по-разному в зависимости от того, к какому разделу (разделам) принадлежит сообщение. Так что сообщения, принадлежащие разделу A, имеют другой заголовок заголовка, чем те, что относятся к разделу B и т. Д. Если сообщение принадлежит более чем одному разделу, не имеет значения, какой из них он выбирает. Он всегда может быть первым в массиве.

Я предполагаю, что мне нужно, чтобы получить текущий «раздел» slug и как-то добавить его как класс тела. Я пробовал много разных методов, и никто не работает для меня. Я нашел фрагмент кода ниже, но, конечно, это работает только для категорий, а не для моих «разделов». Пожалуйста помоги.

add_filter('body_class','add_category_to_single'); function add_category_to_single($classes, $class) { if (is_single() ) { global $post; foreach((get_the_category($post->ID)) as $category) { // add category slug to the $classes array $classes[] = $category->category_nicename; } } // return the $classes array return $classes; } 

Вы можете следовать аналогичному подходу с get_the_terms . Вот функция.

 function add_taxonomy_to_single( $classes ) { if ( is_single() ) { global $post; $my_terms = get_the_terms( $post->ID, 'custom-taxonomy' ); if ( $my_terms && ! is_wp_error( $my_terms ) ) { foreach ($my_terms as $term) { $classes[] = $term->slug; } } return $classes; } } add_filter( 'body_class', 'add_taxonomy_to_single' ); 

Не забудьте изменить название вашей пользовательской таксономии в приведенном выше коде. Например, я использовал custom-taxonomy .

ИЗМЕНИТЬ 1:

Чтобы добавить первое имя таксономии в класс тела, здесь это обновленный код.

 function add_taxonomy_to_single( $classes ) { if ( is_single() ) { global $post; $my_terms = get_the_terms( $post->ID, 'custom-taxonomy' ); if ( $my_terms && ! is_wp_error( $my_terms ) ) { $classes[] = $my_terms[0]->slug; } return $classes; } } add_filter( 'body_class', 'add_taxonomy_to_single' );