2016-03-07 25 views
1

在WordPress,使用Java脚本推荐的选项与wp_enqueue_script(),但如果我想提出一些PHP在脚本是什么?例如,看看这个代码:用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()排队该文件?

希望我的问题是有意义的..

回答

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提到的代码,而不是本地化搞乱......

+0

你的意思是这样的: 'add_action('wp_footer','function_name',1);'?这是一个很好的做法吗? – Avishay28