其实没有什么把戏,你需要检查所有的值。通过省略!= \'\'
, 这是多余的:
if (
get_theme_mod( \'myplugin_h2_color\' ) ||
get_theme_mod( \'myplugin_h3_color\' ) ||
get_theme_mod( \'myplugin_p_color\' ) ||
get_theme_mod( \'myplugin_p_size\' )
) {
但是,可以将Customiser设置保存到单个数组中。因此,如果您使用以下名称注册设置:
$wp_customize->add_setting( \'myplugin[h2_color]\' );
$wp_customize->add_setting( \'myplugin[h3_color]\' );
$wp_customize->add_setting( \'myplugin[p_color]\' );
$wp_customize->add_setting( \'myplugin[p_size]\' );
然后可以检索数组中的值,如:
get_theme_mod( \'myplugin\' );
如果你这样做,那么你可以使用
array_filter()
删除任何空值,并检查生成的数组是否为空。若不是,则至少有一个设置具有值:
$styles = get_theme_mod( \'myplugin\' );
if ( ! empty( array_filter( $styles ) ) ) {
echo \'<style>\';
if ( ! empty( $styles[\'h2_color\'] ) {
printf( \'h2 { color: %s; }\', $styles[\'h2_color\'] );
}
// etc.
echo \'</style>\';
}