динамично добавяне на множество класове към wordpress body_class()

Опитвам се да разбера как да добавя автоматично термини за добавяне на страници към моя клас тяло. Много съм близо до някакъв код, който съм съставял. В момента това работи, но връща само един член. Как мога да го накарам да върне масив от термини, всеки като клас, който се добавя към маркера body? Ето какво имам досега. Fyi "горна лента" е моето таксономично име.

<?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. Някакви идеи? - 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