我的代码是否正确,可以将CSS排在特定页面上?

时间:2019-11-06 作者:Henry

我正在尝试只将CSS样式表加载到“about”页面。

我想我99%正确,但问题是plugins_url - 链接到保存CSS 我可以简单地使用:

function testimonial_style() {
  wp_enqueue_style( \'custom_tooltip_frontend_css\', url(\'path-to-my.css\') );
} 

if(is_page( 42 )){
    add_action(\'wp_enqueue_scripts\', \'testimonial_style\');
}
我可以引用它吗add_action 然后是“脚本”,这真的是一种风格and not 脚本。。。

2 个回复
最合适的回答,由SO网友:Nitesh Moree 整理而成

试试这个:我希望它能起作用。

Explaination:

在以下代码中"is_page( 42 )" 其中42是第页id,共页about page. 因此,如果about页面的id为42,那么它只会将该页面的样式表排入队列。

我还使用wordpress函数为这个CSS文件定义了特定的路径get_template_directory_uri().

function testimonial_style() {
  if ( is_page( 42 ) ) {
    wp_enqueue_style( \'custom_tooltip_frontend_css\', get_template_directory_uri().\'/path-to-my.css\' ); 
  }
} 

add_action(\'wp_enqueue_scripts\', \'testimonial_style\');
让我知道这对你有什么帮助。

SO网友:cjbj

您的代码正常。如果不起作用,你的挂钩顺序可能有问题。

如果你看看list of hooks, 你会发现没有wp_enqueue_styles 钩所以,是的wp_enqueue_scripts 您应该将动作添加到的挂钩。(有一个wp_enqueue_styles 函数,但这是不同的,请阅读更多关于挂钩如何工作的信息here).

在您的代码中,不清楚行的位置if(is_page( 42 )){ ... } 驻留。通常你会把它放在你的主题中functions.php 在用调用的函数中after_setup_theme 钩再次查看挂钩列表,您将看到after_setup_theme 在之前出现wp_enqueue_scripts. 因此,此时您仍然可以将函数附加到后一个挂钩。

您问题中的某些内容表明您正在执行if(is_page( 42 )){ ... } 在插件中。如果它在一个钩住init. 然而,如果你wp_head 你太晚了,因为在那一点上函数wp_enqueue_scripts 已执行。

(*)但如果在主题不活动时执行插件,则会出现错误