根据 WP_Customize 更改 Wordpress 模板 CSS
change Wordpress Template CSS based on WP_Customize
我正在制作一个 Wordpress 模板,我希望在内置的 Wordpress 定制器中有一些选项,例如强调色、自定义字体等,然后将在整个模板中使用这些选项。但是,这意味着我不能只编写 static CSS 代码并且必须以某种方式传递一个变量。我该怎么做?
这是最相关的代码:
function theme_enqueue_styles() {
wp_enqueue_style( 'theme-styles', get_stylesheet_uri() ); // This is where you enqueue your theme's main stylesheet
$custom_css = theme_get_customizer_css();
wp_add_inline_style( 'theme-styles', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
例如,theme_get_customizer_css()
是一个自定义函数,它 return 是一个 CSS 的字符串,它直接覆盖主样式表中与颜色相关的任何代码。因为它是在 PHP 中生成的,所以 get_theme_mod()
可用于检查 for/insert 任何自定义程序设置。生成此 CSS 后,wp_add_inline_style()
将其添加到主样式表;如果一切都正确编码,CSS 的级联特性将使新添加的代码覆盖早期的代码,而不需要 !important
或类似的东西。
我想知道内联插入是否可以(或应该)是 CSS 的唯一声明,定制程序可能会更改它,即在 theme_get_customizer_css()
中如果没有自定义程序选项,则设置 return 默认代码而不是电子表格中的默认代码。这将防止有大量重复 CSS,依靠级联层次结构来工作,但样式表本身也不完整,所以也许有理由不这样做?如果有人有想法,我很乐意提供意见。
我正在制作一个 Wordpress 模板,我希望在内置的 Wordpress 定制器中有一些选项,例如强调色、自定义字体等,然后将在整个模板中使用这些选项。但是,这意味着我不能只编写 static CSS 代码并且必须以某种方式传递一个变量。我该怎么做?
这是最相关的代码:
function theme_enqueue_styles() {
wp_enqueue_style( 'theme-styles', get_stylesheet_uri() ); // This is where you enqueue your theme's main stylesheet
$custom_css = theme_get_customizer_css();
wp_add_inline_style( 'theme-styles', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
例如,theme_get_customizer_css()
是一个自定义函数,它 return 是一个 CSS 的字符串,它直接覆盖主样式表中与颜色相关的任何代码。因为它是在 PHP 中生成的,所以 get_theme_mod()
可用于检查 for/insert 任何自定义程序设置。生成此 CSS 后,wp_add_inline_style()
将其添加到主样式表;如果一切都正确编码,CSS 的级联特性将使新添加的代码覆盖早期的代码,而不需要 !important
或类似的东西。
我想知道内联插入是否可以(或应该)是 CSS 的唯一声明,定制程序可能会更改它,即在 theme_get_customizer_css()
中如果没有自定义程序选项,则设置 return 默认代码而不是电子表格中的默认代码。这将防止有大量重复 CSS,依靠级联层次结构来工作,但样式表本身也不完整,所以也许有理由不这样做?如果有人有想法,我很乐意提供意见。