编辑“Kahi‘s Highlight Used Categories”插件代码--在帖子页面高亮显示父子类别

时间:2013-04-18 作者:Marcelo Noronha

我试图突出显示(使用css)所选帖子中使用的子类别和父类别。

因此,我找到了这个插件“Kahi’s Highlight Used Categories”。

插件网站:http://kahi.cz/wordpress/highlight-used-categories-plugin/

它的作用。。。

它将“used cat”类和“used cat parent”类分别添加到子类别和主类别中进行样式化。

问题是:

我的网站(http://www.mpn.p.ht/wp_br2/), 有三大类:“男性”(意为男性)、“女性”(意为女性)和“婴儿”(意为婴儿)。

所有三个主要类别的子类别都相同。

所以,让我们说一下,我们在帖子页面上的主类别是“男性”,子类别是“Acessórios”(意思是附属品)。。。

该插件似乎将“二手猫”添加到了所有“Acesssórios”(子类别)中,也可以在“Feminino”和“Infantil”中找到。

我想插件添加类\'二手猫\',只到所选职位的子类别。不是通过“类别”列表找到具有相同名称的所有子类别。

以下是插件代码:

<?php
/*
Plugin Name: Kahi\'s Highligh Used Categories
Plugin URI: http://www.kahi.cz/wordpress/highlight-used-categories-plugin
Description: In the list of categories, adds classes <code>used-cat</code> and 
<code>used-cat-parents</code> to particular list-items (when browsing a post).

Version: 1.0
Author: Peter Kahoun and Dirk Jaster
Author URI: http://www.kahi.cz/wordpress/
*/

class KHUC {

function wp_list_categories ($text) {

    global $post;

    if (is_singular()) {

        $categories = wp_get_post_categories($post->ID);

        foreach ($categories as $category_id) {

            $category = get_category($category_id);
            $category_parent = get_category($category->category_parent);

            $text = preg_replace(
                "/class=\\"(.*)\\"><a ([^<>]*)>$category->name<\\/a>/", 
                \' class="$1 used-cat"><a $2>\' . $category->name .    
\'</a>\', 
                $text);

            $text = preg_replace(
                "/class=\\"(.*)\\"><a ([^<>]*)>$category_parent-
>name<\\/a>/", 
                \' class="$1 used-cat-parent"><a $2>\' . 
$category_parent->name . \'</a>\', 
                $text);

        }

    }

    return $text;

}

}

add_filter(\'wp_list_categories\', array(\'KHUC\',\'wp_list_categories\'));
有人知道我应该在插件代码中做些什么更改吗,所以我只得到使用中的子类别来获得“used cat”类?

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

使用类别ID:

class KHUC {
    function wp_list_categories ($text) {
        global $post;
        if (is_singular()) {
            $categories = wp_get_post_categories($post->ID);
            foreach ($categories as $category_id) {
                $category = get_category($category_id);
                $category_parent = get_category($category->category_parent);
                $text = preg_replace(
                    \'#class="([^"]*cat-item-\'.$category->cat_ID.\'[^"0-9]*)"#\',
                    \'class="$1 used-cat"\', 
                    $text);
                $text = preg_replace(
                    \'#class="([^"]*cat-item-\'.$category_parent->cat_ID.\'[^"0-9]*)"#\',
                    \'class="$1 used-cat-parent"\', 
                    $text);
            }
        }
        return $text;
    }
}
add_filter(\'wp_list_categories\', array(\'KHUC\', \'wp_list_categories\'));

结束

相关推荐

是否使用wp_Dropdown_Categories设置选定的Term_id?

我使用这段代码来获取自定义分类法的term\\u id。下拉列表确实列出了分类法类型的术语。当我打印$terms变量时,我会在前端看到我正在编辑的文章的术语ID。为什么没有将术语ID设置为所选选项?$terms = get_the_terms( $current_post, \'Type\' ); print_r($terms); wp_dropdown_categories( \'taxonomy=Type&hierarchical=1&hide_empty=0&