2016-03-07 53 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