динамическое добавление нескольких классов в wordpress body_class()

Я пытаюсь понять, как автоматически добавлять термины для страниц в класс моего тела. Я очень близок с некоторым кодом, который я собирал по кусочкам. Сейчас это работает, но возвращает только один термин. Как я могу заставить его возвращать массив терминов каждый как класс, который добавляется в тег body? Вот что у меня есть до сих пор. к вашему сведению, «верхняя панель» — это название моей таксономии.

<?php $class='';
  if(is_page()) {
  $terms = get_terms("topbar");
  $class .= $terms[0]->slug;
}?>
<body id="top" <?php if (function_exists('body_class')) body_class($class ); ?>>

person Drhodes    schedule 07.10.2011    source источник


Ответы (1)


<?php
if(is_page()) {
    global $post;
    $terms = wp_get_post_terms($post->ID, "topbar", array("fields" => "names"));
    $class = ($terms) ? implode(" ", $terms) : '';
}
?>

<body id="top" <?php if (function_exists('body_class')) body_class($class ); ?>>

Ваше здоровье ;)

person vzwick    schedule 07.10.2011
comment
Спасибо за помощь vzwick. То, что вы мне дали, очень близко. В настоящее время он добавляет все термины в класс body. Я ищу его, чтобы добавить только проверенные условия. Поэтому, если доступно несколько терминов, но вы выбрали только один или два, в тег body будут добавлены только эти классы. Любые идеи? - person Drhodes; 07.10.2011
comment
Я обновил свой ответ соответственно, теперь он должен работать так, как вы хотите. - person vzwick; 07.10.2011
comment
Кажется, больше не добавляет никаких классов. Есть ли что-то, что мне нужно изменить на мои собственные ценности? Может быть, поля и имена. Что они представляют? Извините, если я туплю, я просто пытаюсь учиться, пока мы идем сюда. - person Drhodes; 07.10.2011
comment
Гум. У меня нет под рукой экземпляра WP, чтобы протестировать здесь... можете ли вы выполнить var_dump($terms) сразу после $terms = ... и сказать мне, каков результат? Редактировать: Также обратите внимание на редактирование моего ответа. - person vzwick; 07.10.2011