我同意Howdy\\u McGee关于使用自定义字段的评论。可以使用add_meta_box()
.
1。方法:body\\u类过滤器,例如,您可以让他输入自定义字段\'color-scheme\'
. 在下一步中,您可以简单地钩住\'body_class\'
-筛选并将另一个类添加到<body>
-标记,具体取决于当前自定义字段中保存的内容:
add_filter( \'body_class\', \'chg_color_by_post\' );
function chg_color_by_post( $classes ){
if( is_singular() ){
$color_scheme = get_post_meta( get_the_ID(), \'color-scheme\', true );
if( $color_scheme == \'dark\' )
$classes[] = \'dark\';
if( $color_scheme == \'light\' )
$classes[] = \'light\';
}
return $classes;
}
现在您可以自由使用CSS样式表了。例如:
.dark{
background: #000;
}
.dark p{
color: #fff;
}
.light{
background:#fff;
}
.light p{
color: #000;
}
当然,对于此解决方案,您必须使用
body_class()
中的函数
<body>
-标签
2。方法:根据自定义字段将不同样式排队另一种基于自定义字段的解决方案是根据自定义字段中设置的值将不同样式排队:
add_action( \'wp_enqueue_scripts\', \'change_style_by_post\' );
function change_style_by_post(){
if( is_singular() ){
$color_scheme = get_post_meta( get_the_ID(), \'color-scheme\', true );
if( $color_scheme == \'dark\' )
wp_enqueue_script( \'theme-dark\', get_template_directory_uri() . \'/style-dark.css\' );
if( $color_scheme == \'light\' )
wp_enqueue_script( \'theme-light\', get_template_directory_uri() . \'/style-light.css\' );
}
}
使用这种方法,您可以更灵活地将CSS代码组织在不同的文件中。您甚至可以删除所有CSS样式(通过取消注册,请参见
wp_dequeue_style()
) 并仅注册特定配色方案的样式。