如何将类别的插件作为一个类正确显示?

时间:2012-10-20 作者:Dipa

我想将类别的slug显示为一个类。

我尝试编写代码并将其放入函数中。php

add_filter(\'the_category\', \'my_custom_get_the_category_list\');

function my_custom__get_the_category_list($thelist, $post_id = false ) {
    global $wp_rewrite;
    $categories = get_the_category( $post_id );

    foreach ( $categories as $category ) {
        $thelist = str_replace(\'rel="\', \'class="category-\'.$category->category_nicename.\'" rel="\', $thelist);
    }
    return $thelist;
}
但有点不对劲。我使用get_the_category_list() 在类别中。php

然后每个类别显示相同的类。

<ul class="post-categories">
    <li><a href="http://localhost/test_blog/topics/editorial" title="View all posts in Editorial" class="category-editorial" rel="category tag">Editorial</a></li>
    <li><a href="http://localhost/test_blog/topics/economy/business" title="View all posts in Business" class="category-editorial" rel="category tag">Business</a></li>
    <li><a href="http://localhost/test_blog/topics/economy/national" title="View all posts in National" class="category-editorial" rel="category tag">National</a></li>
</ul>
我哪里做错了?

1 个回复
SO网友:Mridul Aggarwal

过滤器使用错误。对于过滤器the_category 正确的参数为“list”、“separator”&;“家长”,而不是“职位id”

下一个add_filter 有第四个参数,告诉wordpress函数将接受的参数数,默认为1。因此,在您的情况下,$post\\u id将始终为false。然后get_the_category 返回中当前帖子的类别the loop (必须根据您的HTML进行编辑)

在那之后,你的逻辑也是错误的。您正在替换rel=" 每个类别的课程一个接一个。每个链接都包含这个字符串,因此每个链接最终都会获得每个categories类。假设foreach中有3个提到的类别,那么最终的HTML变成

<ul class="post-categories">
    <li><a href="http://localhost/test_blog/topics/editorial" title="View all posts in Editorial" class="category-editorial" class="category-business" class="category-national" rel="category tag">Editorial</a></li>
    <li><a href="http://localhost/test_blog/topics/economy/business" title="View all posts in Business" class="category-editorial" class="category-business" class="category-national" rel="category tag">Business</a></li>
    <li><a href="http://localhost/test_blog/topics/economy/national" title="View all posts in National" class="category-editorial" class="category-business" class="category-national" rel="category tag">National</a></li>
</ul>
如您所见,每个元素现在都有3个类属性。浏览器应该考虑哪一个?

我不明白你为什么把事情弄得这么复杂get_the_category 内部类别。&直接使用php;然后自己构造html

结束

相关推荐

将筛选器添加到wp_Dropdown_Pages()或wp_Dropdown_Categories()-没有选择容器?

我在和wp_dropdown_pages() 和wp_dropdown_categories() 并且两者都始终输出<select>-盒子及其<option>s作为项目。有没有可能在这个函数中添加一个过滤器/挂钩,这样我就可以得到<option>s而不被包裹在<select>我这样问的原因是我想将页面和类别合并到一个下拉列表中。我找不到参数来设置这个!有什么想法吗?