【问题标题】:dynamically adding multiple classes to wordpress body_class()将多个类动态添加到 wordpress body_class()
【发布时间】:2023-04-02 16:47:02
【问题描述】:

我正在尝试弄清楚如何将页面的添加术语自动添加到我的正文类中。我非常接近我一直在拼凑的一些代码。现在这有效,但只返回一个术语。我怎样才能让它返回一个术语数组,每个术语都作为一个添加到 body 标记的类?这是我到目前为止所得到的。仅供参考“topbar”是我的分类名称。

<?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 ); ?>>

【问题讨论】:

    标签: wordpress class taxonomy slug


    【解决方案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 ); ?>>
    

    干杯 ;)

    【讨论】:

    • 感谢 vzwick 的帮助。你给我的很接近。它目前将所有术语添加到正文类。我正在寻找它以仅添加已检查的条款。因此,如果有多个术语可用,但您只选择一两个,它只会将这些类添加到 body 标记中。有什么想法吗?
    • 我相应地更新了我的答案,现在应该可以按照您想要的方式工作。
    • 似乎不再添加任何类。我需要改变自己的价值观吗?也许是“字段”和“名称”。那些代表什么?抱歉,如果我头脑不清醒,我只是想边走边学。
    • 哼。我手头没有 WP 实例可以在这里测试......你能在$terms = ... 之后做一个var_dump($terms) 并告诉我输出是什么吗? 编辑:另外,请注意我的答案的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2016-08-15
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多