需要帮助“清理”将类别插件拉入Body类的自定义函数

时间:2013-01-13 作者:Mr.Brown

不确定“消毒”是否真的是正确的说法,但这是我能想到的最好的说法。。。无论如何,问题是:

我的功能很好,就像这样。。。

// add category id to body & post classes 
function category_id_class($classes) {
    global $post;
    foreach((get_the_category($post->ID)) as $category)
        $classes [] = $category->cat_name;
        return $classes;
}
add_filter(\'post_class\', \'category_id_class\');
add_filter(\'body_class\', \'category_id_class\');
直到用户输入一个类别,如“category 1”(类别1),并在其中加上一个空格,这种方法才奏效。空间显然不适合作为CSS类,所以如果我们可以添加一个破折号来替换空间,那将是完美的-只是不确定如何实现这一点?

谢谢

3 个回复
最合适的回答,由SO网友:Mateusz Hajdziony 整理而成

仅使用$category->slug 而不是$category->cat_name. slug已经是小写的,并且用破折号代替空格。

SO网友:diggy

sanitize_html_class 清理html类名以确保其仅包含有效字符。

foreach((get_the_category($post->ID)) as $category)
    $classes [] = sanitize_html_class($category->cat_name);

SO网友:akTed

sanitize_title_with_dashes 应该做到这一点。

示例:

foreach((get_the_category($post->ID)) as $category)
    $classes [] = sanitize_title_with_dashes($category->cat_name);

结束

相关推荐

problems exluding categories

我以前做过,但由于某种原因,它不起作用,我也不知道为什么。我只是想从博客页面中排除一些类别。我以为这件事很简单。我有索引。php文件打开,在循环之前,我这样做了 query_posts( $guery_string . \'&cat=-6\' ) if (have_posts)......rest of loop here. 我甚至尝试添加全局$query\\u字符串;最重要的是,我所做的一切都不能摆脱第6类。这种方法在最新版本的wordpress中是否不再有效?