仅在特定模板中加载JS文件

时间:2019-11-22 作者:Elaine Byene

is_page 检测到弹头时工作正常。然而is_page_template 函数不是,所以我尝试了global $template 我也是,但这也不行。如何解决此问题?

我想加载页面的JS文件template-parts/content.php

function software_enqueue() {
   if ( is_page( \'software\' ) ) {
    wp_enqueue_script(\'sticky-kit.min.js\', get_template_directory_uri().\'/inc/assets/js/sticky-kit.min.js\', false ,\'1.0\', \'all\' );
   }
   global $template;
    if ( basename( $template ) === \'template-parts/content.php\' ) {
      wp_enqueue_script(\'sticky-kit.min.js\', get_template_directory_uri().\'/inc/assets/js/sticky-kit.min.js\', false ,\'1.0\', \'all\' );
   }
}
add_action( \'wp_enqueue_scripts\', \'software_enqueue\' );
顺便说一句,我也尝试使用下面的代码调用该文件(fullwidth.php),但没有成功:

if ( is_page_template(\'fullwidth.php\') ) {
    wp_enqueue_script(\'sticky-kit.min.js\', get_template_directory_uri().\'/inc/assets/js/sticky-kit.min.js\', false ,\'1.0\', \'all\' );
   } 

fullwidth.php

<?php
/**
* Template Name: Full Width
 */

get_header(); ?>

    <section id="primary" class="content-area content-fullwidth">
        <main id="main" class="site-main" role="main">

            <?php
            while ( have_posts() ) : the_post();

                get_template_part( \'template-parts/content\', \'page\' );

                // If comments are open or we have at least one comment, load up the comment template.
                if ( comments_open() || get_comments_number() ) :
                    comments_template();
                endif;

            endwhile; // End of the loop.
            ?>

        </main><!-- #main -->
    </section><!-- #primary -->

<?php
get_footer();

1 个回复
最合适的回答,由SO网友:Cenay 整理而成

Kaperto是正确的,您可以在希望javascript出现的实际页面模板文件中排队。如果它只需要在一个模板文件中(而不是每个全宽的页面),我会创建一个包含JS的新文件,并将其用作页面的模板。Ie:

<?php
/** 
* Template Name: Sticky Kit Enabled 
*/ 

wp_enqueue_script(\'sticky-kit.min.js\', get_template_directory_uri().\'/inc/assets/js/sticky-kit.min.js\', false ,\'1.0\', \'all\' );

get_header(); ?>

<section id="primary" class="content-area content-fullwidth">
    <main id="main" class="site-main" role="main">

        <?php
        while ( have_posts() ) : the_post();

            get_template_part( \'template-parts/content\', \'page\' );

            // If comments are open or we have at least one comment, load up the comment template.
            if ( comments_open() || get_comments_number() ) :
                comments_template();
            endif;

        endwhile; // End of the loop.
        ?>

    </main><!-- #main -->
</section><!-- #primary -->

相关推荐

初学者问题:通过管理Web界面访问Functions.php以导入自定义帖子类型?

是否可以访问这些功能。php文件仅仅使用管理web界面?我正在尝试访问以前创建的(手动编码的)自定义帖子类型,我不得不跳过很多障碍,因为我无法访问函数中的代码。php文件。我已经浏览了很多帮助页面,但建议的步骤似乎总是涉及到函数。php文件(我无法访问)或使用插件中的导入/导出工具,该插件首先创建了自定义帖子类型(据我所知,没有使用任何插件)。这似乎是一个非常基本的问题,但我一辈子都想不出来。任何帮助都将不胜感激!