2013-07-05 31 views
1

我想綁定jQuery的後期元選項功能,所以我已經創建了一個PHP文件與PHP標籤內的jQuery代碼。Wordpress get_post_meta不能在爲動態php編寫的.php文件中工作?

 <?php 
     echo " 
      function dynamicAdjust() { 
      jQuery('#main-home').css('margin-top', jQuery(window).height());  
      } 
     "; 
     ?> 

也許有更好的方法來創建動態PHP(讓我知道如果有)與交元的選擇,但這裏的jQuery工作得很好,我排隊在我的functions.php作爲一個JavaScript文件,和jQuery funciton工作正常。

這個問題以及在PHP文件中使用jQuery的重點在於讓用戶打開/關閉選項,例如,當我將代碼包裝在if語句中時,就像這樣。

 <?php 
     if(get_post_meta($post->ID, '_moon_full_static_area', true) == 'on'); { 
      echo " 
       function dynamicAdjust() { 
       jQuery('#main-home').css('margin-top', jQuery(window).height());  
       } 
      "; 
      } 
     ?> 

這給了我這個錯誤致命錯誤:調用未定義功能get_post_meta()在我的目錄..

確定,所以根據該消息的明顯,它沒有看到get_post_meta的功能,我知道有post_meta啓用連接到數據庫的任何東西,我只是不知道除了排隊腳本之外我還需要做什麼?有任何想法嗎?

PS .. Best Practice for Including JS (with PHP) in WordPress Functions file我碰到過這個,這是我在找什麼?

+0

請提出一個新問題,而不是。如果有疑問,請查看指南[關於]和[幫助]。 – brasofilo

+0

啊好吧沒問題...只是沒有想稀釋這個網站有這麼多的問題...我真的很感謝幫助,雖然... –

+0

該網站有** 530萬**的問題。別擔心。問一個新的問題是正確的(在你自己研究並嘗試之後:) – brasofilo

回答

0

將PHP值傳遞給Javascript文件的標準方式是通過wp_localize_script
See also在WordPress的答案

add_action('wp_head', 'localize_script_so_17497763'); 

function localize_script_so_17497763() 
{ 
    // Maybe check for `is_single()` or other Conditional Tag 

    // Check post meta 
    global $post; 
    $get_meta = get_post_meta($post->ID, '_moon_full_static_area', true); 
    $meta_value = ($get_meta == 'on') ? 'on' : 'off'; 

    // Build localization array to be passed 
    $localize_array = array(
      'moon' => $meta_value, 
      'post_id' => $post->ID, 
      'title' => $post->post_title, 
    ); 

    wp_enqueue_script('my-file', plugin_dir_path(__FILE__).'my-file.js', array('jquery')); 
    wp_localize_script('my-file', 'wplocal', $localize_array); 
} 

,然後在my-file.js

console.log(wplocal.moon); 
console.log(wplocal.post_id); 
console.log(wplocal.title); 

參見:What is the JavaScript equivalent of var_dump or print_r in PHP?

+0

這聽起來很正確,讓我在這裏給它一個答案吧!謝謝!!! –

+0

哦,剛剛看到了console.log部分..讓我給出一個裂縫.. –

+0

好甜的控制檯日誌返回「開」的價值,它的工作原理......嗯,我會在if語句中使用它?就像if(wplocal.moon){我的JQuery在這裏....} –

相關問題