我会这样做:
根据单个帖子包含的类别向其添加CSS类使用样式表中的这些CSS类根据类别对帖子进行样式化例如,li>;PHP,直接进入functions.php
您的主题:
/**
* Add CSS class(es) to the body of the single posts with the prefix `has-cateogry-`
*
* @param Array An array of body classes
* @return Array A modified array of body classes
*/
function wpse_18860( $classes ) {
if( is_single() ) {
global $post;
foreach( ( get_the_category( $post->ID ) ) as $category ) {
// add category-slug with the prefix \'has-category-\' to the $classes array
$classes[] = \'has-category-\' . $category->cat_name;
}
}
// return the $classes array
return $classes;
}
add_filter( \'body_class\', \'wpse_18860\' );
和CSS
style.css
主题文件:
/* Default style for the single posts */
.single {
background-color: #ffd;
color: #334;
}
/* Category-based style for the single posts */
.single.has-category-travel {
background-color: #332;
color: rgba(255, 255, 255, .5);
}
没有那么精明,因为每次创建一个新类别时,都必须在CSS中添加一个新的样式选择器,以使用这个新类别设置帖子的样式。