在footer.php中使用PHP加载特定页面上的脚本

时间:2012-08-07 作者:V Neal

我正在尝试仅在特定页面上需要时加载脚本。

我的页脚中有以下内容,但我正在努力解决“is nots”问题,并将PHP链接到一个else if语句中,我认为这将比我现在编写的方式更加优雅。

代码如下:

<?php if (is_page(\'home\') ) { ?>
<script type="text/javascript" src="<?php echo bloginfo(\'template_directory\');?>/scripts/jquery.jcarousel.min.js"></script> 
<script type="text/javascript">
jQuery(function($){
$(\'#mycarousel\').jcarousel();
});
</script>
<?php } ?>


<!--news page lightbox custom JS--> 
<?php if (is_single() ) { ?>
<script type="text/javascript" src="<?php echo bloginfo(\'template_directory\');?>/scripts/slimbox2.js"></script>
<?php } ?>


<!--JS to load on pages apart from model pages AND news pages--> 
<?php if ( ! is_page_template(\'modelPages.php\') || ! is_single() ) { ?>
<script type="text/javascript" src="<?php echo bloginfo(\'template_directory\');?>/scripts/jquery.easing.min.js"></script> 
<script type="text/javascript" src="<?php echo bloginfo(\'template_directory\');?>/scripts/supersized.3.2.7.min.js"></script>
<?php } ?>
是否有人a)仅当页面不单独或使用模板时,才能为我指出加载脚本的正确方向,并建议谁在else语句中编写此内容?

谢谢

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

您应该使用wp_enqueue_script 不要将脚本标记直接放在模板文件中:

function wpa61143_enqueue_scripts() {
    if( is_page( \'home\' ) ) :
        wp_enqueue_script( 
            \'jcarousel\',
            get_template_directory_uri() . \'/scripts/jquery.jcarousel.min.js\',
            array( \'jquery\' ),
            null,
            true,
        );
    elseif( is_single() ) :
        // enqueue scripts for single
    elseif( ! is_page_template(\'modelPages.php\') ) :
        // enqueue scripts for other
    endif;
}    

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

结束

相关推荐

让jQuery AJAX在WordPress中工作(GET-1)

我正在尝试了解如何使用jQuery$.ajax() 对于项目。我使用从中学到的知识设置此测试TutsPlus.com. 除了我得到一个-1 已返回。所以我得到了警报Success: -1 和#test-div1 填充了-1, 而不是Hello Everyone!.My HTML:<input type=\"hidden\" name=\"GreetingAll\" id=\"GreetingAll\" value=\"Hello Everyone!\" /> <input c