用php决定排队脚本

时间:2016-03-07 12:15:46

标签: javascript php wordpress

在wordpress中,使用java脚本的推荐选项是wp_enqueue_script(),但如果我想在该脚本中加入一些php怎么办?例如,看看这段代码:

$(window).scroll(function () {
    if ($(window).scrollTop() > 100) {
        <?php if ( !is_front_page() ){ ?>
            $('.primary-menu').hide('slow', 'swing'); 
            $('.site-logo').css('height', '60px').css('padding-bottom', '0');
            $('#masthead').css('height', '5px'); 
        <?php } ?>
        <?php if ( !mida_is_english() ) : ?>
            $('.site-header').addClass('shrink');
            $("#masthead.site-header.shrink")
            .find('.site-logo img')
            .attr('src', '<?php echo $upload_dir['baseurl']?>/2015/12/extra-cropped-logo.jpg'); 
        <?php else : ?>
            $('.site-header').addClass('shrink');
            $("#masthead.site-header.shrink")
            .find('.site-logo img')
            .attr('src', '<?php echo $upload_dir['baseurl']?>/2015/10/mida-eng-logo.png'); 
        <?php endif; ?>             
    }
    else{ //some more code....

如何将此代码排入队列?我可以把它放在php文件中并使用wp_enqueue_script()来排队该文件?

希望我的问题有道理..

1 个答案:

答案 0 :(得分:0)

如果您不愿意将该代码添加到网站的 footer.php 文件中,可以使用wp_localize_script()将数据传递到JavaScript

// Localize the script with new data
$data = array(
    'is_front_page' => is_front_page(),
    'is_english' => mida_is_english()
);
wp_localize_script( 'your-registered-script-handle', 'page_info', $data );

请注意,您可能需要在wp_enqueue_scripts挂钩之后挂钩,以使其正常工作。然后,您可以通过以下方式在JS中使用它:

// This is in a JavaScript file
if ( !page_info.is_front_page ) {
    // Do stuff
}
if ( !page_info.is_english ) {
    // Do some other stuff
}

所有这些都说,我建议只将你提到的代码注入wp_footer,而不是搞乱本地化......