Wordpress - Добавить теги как классы? (Post_class) - PullRequest
0 голосов
/ 28 февраля 2012

Я удивлен, что нигде не смог найти ответ в Интернете, но есть ли способ добавить теги сообщения в классы?

Я пытаюсь добавить фильтр вpost_class, но он не работает:

function tag_to_class($classes) {
        global $post;
        foreach((get_the_tags($post->ID)) as $tag)
            $tags[] = $tag->name;
            return $tags;
    }
    add_filter('post_class', 'tag_to_class');
    add_filter('body_class', 'tag_to_class');

Я получаю сообщение об ошибке:

Предупреждение: неверный аргумент для foreach ()

Любая помощь с благодарностью, спасибо!

Ответы [ 2 ]

0 голосов
/ 27 сентября 2013

Это сработало для меня:

function tags_to_body_class( $classes ) {
    global $post;
    $posttags = get_the_tags( $post->ID );

    if ( $posttags ){
        foreach( $posttags as $tag )
            $tags[] = $tag->slug;
        return $tags;
}
add_filter('body_class', 'tags_to_body_class');
0 голосов
/ 28 февраля 2012

get_the_tags должен использоваться в Цикле, но если вы уже находитесь в Цикле, вы можете использовать the_tags, чтобы получить список тегов в текущем сообщении, например, так:

   <div class="<?php the_tags("", " ", "");?>">

У меня сейчас нет WordPress, но я думаю, что вы можете добавить их к post_class следующим образом:

<div class="<?php post_class(the_tags("", " ", "")); ?>">
...