根据模板将样式表入队

时间:2016-11-04 作者:Rafal

我试图根据模板生成样式表,但不幸的是,我的代码不起作用。我做错了什么?

 if ( is_page_template(\'single-location.php\')) {
       function themename_include_page_specific_css() {
  wp_enqueue_style(\'paralax_style\', get_template_directory_uri().\'/paralax.css\');
}
add_action(\'wp_enqueue_scripts\', \'paralax_style\');
    }
我也试过了,但还是一无所获。

 function load_theme_files() {
    if (is_page_template(\'single-location.php\')) {
      wp_enqueue_style(\'paralax_style\', esc_url( get_template_directory_uri() ).\'/paralax.css\');
    }
}
add_action(\'wp_enqueue_scripts\', \'load_theme_files\');

3 个回复
SO网友:lavekyl

尝试将此代码放入您的函数中,将其他脚本和样式排入队列,应该可以正常工作。

wp_register_style( \'template-style\', get_stylesheet_directory_uri().\'/templates/css/template.css\', array(), \'\', true );

if ( is_page_template( \'template-name.php\' ) ) {
    wp_enqueue_style( \'template-style\' );
}

SO网友:bravokeyl

single-location.php 页面模板的命名是非常糟糕的选择,因为它与默认页面冲突template hierarchy single-$posttype.php.

所以我鼓励你把名字改成tem-location.php, 那么下面的代码就可以工作了,还请注意排队处理程序,因为这也不应该与其他代码冲突(我的意思是,如果您已经有一个脚本/样式使用handle排队paralar-style 那么,即使使用相同的句柄将脚本/样式排入队列,也无法工作。

此外,请确保您的模板位置正确,例如,如果您放置tem-location.php 在里面page-templates 然后您应该检查文件夹page-templates\\tem-location.php.

function wpse245126_load_theme_files() {
    if (is_page_template(\'tem-location.php\')) {
      wp_enqueue_style(\'tem-location-style\', esc_url( get_template_directory_uri() ).\'/paralax.css\');
    }
}
add_action(\'wp_enqueue_scripts\', \'wpse245126_load_theme_files\');

SO网友:PayteR

您可以使用此筛选器筛选出具有任何条件的样式,或在某些模板上使用其他输出href字符串,例如:

add_filter( \'style_loader_src\', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
}
return false;
});

相关推荐