根据ID分配不同的css 类

Assign different css classes based on ID

  1. 这是我的:

  2. 这就是我要实现的目标:

这是我为实现它而尝试修改的代码:

<?php do_action( 'bbp_theme_before_topic_title' ); ?>


    <span class="bbp-topic-started-in"><?php
        printf( __('<a class="dog" href="%1$s">%2$s</a>', 'bbpress' ),
                bbp_get_forum_permalink( bbp_get_topic_forum_id() ),
                bbp_get_forum_title( bbp_get_topic_forum_id() ) );
    ?></span>
    <a class="bbp-topic-permalink" href="<?php bbp_topic_permalink(); ?>"><?php bbp_topic_title(); ?></a>

如您所见,它将 class "dog" 分配给所有论坛链接。我需要它根据论坛 ID 将单独的 classes 分配给不同的论坛,这样我就可以为它们设置不同的样式。

我想的可能是 if 语句,但我不确定如何正确执行它。有人有什么建议吗?

您可以尝试这样的操作:

<?php do_action( 'bbp_theme_before_topic_title' ); ?>

<span class="bbp-topic-started-in">
<?php
    $forumId = bbp_get_topic_forum_id();

    // Replace these values with your forum IDs and css classes
    if ($forumId == 5) {
        $class = "dog";
    } elseif ($forumId == 6) {
        $class = "cat";
    } else {
        // Remember to specify a default css classname
        // in case we didn't match any of the 'if' cases above
        $class = "mouse";
    }

    // Use the $class variable that we set above to dynamically
    // replace the classname with the value we want
    printf( __('<a class="' . $class. '" href="%1$s">%2$s</a>', 'bbpress' ),
            bbp_get_forum_permalink($forumId),
            bbp_get_forum_title($forumId);
?>
</span>

请注意我是如何将 bbp_get_topic_forum_id() 设置为一个变量并在 ifprintf 中使用它的。这样做是一种很好的做法,因为它可以避免不必要地多次调用该函数。