特定页面模板上的WP入队样式

时间:2012-08-08 作者:Sean

我在一个主题的过程中,我想使用页面模板添加登录页。我找不到任何地方显示如何将特定页面模板的style或js排队。任何建议。例如,登录页1-登录页模板1。php将需要与博客或主页非常不同的样式和js。

6 个回复
SO网友:kchjr

如果您计划进行大量WP开发,则应将此页面标记为书签:http://codex.wordpress.org/Conditional_Tags

另一个答案是可行的,但条件依赖于你的页面slug(myurl.com/this is The slug)永不改变。一种更可靠的方法(IMO)是使用is_page_template(\'example-template.php\') 改为条件检查。

SO网友:Edward Caissie

您可以使用is_page( \'landing-page-template-one\' ) 作为全面排队语句的一部分,围绕特定于页面的样式/脚本设置条件。

function my_enqueue_stuff() {
  if ( is_page( \'landing-page-template-one\' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( \'wp_enqueue_scripts\', \'my_enqueue_stuff\' );
你甚至可以链更多elseif 进入以上其他页面等。

参考号:Functions Reference - is_page()

SO网友:Razon Komar Pal

如果页面模板位于主题的子目录中(自WP 3.4以来),请在模板文件名前加上文件夹名称和斜杠,例如:

is_page_template( \'templates/about.php\' );
所以,整个函数如下所示:

function my_enqueue_stuff() {
  if ( is_page_template( \'landing-page-template-one\' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( \'wp_enqueue_scripts\', \'my_enqueue_stuff\' );
参考号:Official Documentations

SO网友:richplane

我不知道其他答案中提供的解决方案是否有用,但是(因为没有公认的答案!)目前看来正确的答案是:

function my_enqueue_stuff() {
    if ( get_page_template_slug() == \'landing-page-template-one.php\' ) {
        wp_enqueue_script(\'my-script-handle\', \'script-path.js\', ... );
    }
}
add_action( \'wp_enqueue_scripts\', \'my_enqueue_stuff\' );
根据本文,is_page_template()只在循环之外工作https://developer.wordpress.org/reference/functions/is_page_template/.

SO网友:Touhid Imam

说你的模板名是temper 您希望在该页面上加载引导,以便可以将样式排入特定页面模板的队列,如下所示:

转到function.php 文件,然后检查如下条件:

function temper_scripts() {

    if(basename(get_page_template()) == \'temper.php\'){

       wp_enqueue_style(\'bootstrap\', \'//stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\');

    }

}

add_action(\'wp_enqueue_scripts\', \'temper_scripts\');

SO网友:Rajeev

这个很好用。

      function my_enqueue_stuff() {

 // "page-templates/about.php" is the path of the template file. If your template file is in Theme\'s root folder, then use it as "about.php".

        if(is_page_template( \'page-templates/about.php\' ))
        {
            wp_enqueue_script( \'lightgallery-js\', get_template_directory_uri() . \'/js/lightgallery-all.min.js\');
            wp_enqueue_script(\'raventours-picturefill\', "https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js", true, null);
        }
        }
        add_action( \'wp_enqueue_scripts\', \'my_enqueue_stuff\' );

结束

相关推荐