2012-03-05 22 views
0

我正在寫一個動態創建一個字符串的Wordpress插件。 我想使用wp_head掛鉤在元標記中插入此字符串。我如何傳遞一個可變的wordpress短代碼

我的插件的工作原理如下:我定義了一個shortcode,其處理函數聲明add_action(...,在標頭中添加了一個特殊的<meta>標籤。

這個工作,但...

我唯一的問題是,我無法弄清楚如何通過打印機會進入頭包含字符串變量。該變量沒有定義,即使我全球化在我的插件。

//INSIDE MY PLUGIN... 

global $head_string; 

function initialize_my_plugin_class() { 
    $head_string = "<meta>bla bla bla</meta>"; 
} 

function add_action('wp_head', 'add_meta_tags') //this is slightly oversimplified 
               //the execution order of wp_head makes 
               //the real code a bit more complicated 
               //for the purposes of this question let's 
               //pretend it's like this. 

function add_meta_tags() { 
    echo $head_string 
} 

結果起作用,除$head_string變量爲空。所以它打印一個空的meta標籤。 (我知道所有其他的工作,因爲我可以更改add_meta_tags()做類似echo "FAKE META TAG";的東西,它顯示了它應該在標題中的位置。)

那麼,我在做什麼?我認爲它必須涉及可變範圍,但我被卡住了。

回答

0

嘗試在您的函數中將$ head_string設置爲全局。

+0

我試過全球化變量的一對夫婦的變化(因爲我是一個困惑通過對全局的PHP文件!)。你的建議是將它設置爲全局唯一的函數內部,還是除了外部的'global'聲明? – emersonthis 2012-03-05 21:23:05

+0

我會嘗試在附加到原來的全局聲明 – 2012-03-05 21:41:38

+0

不知道它是「正確的」,但它是幹活的。每次我引用該變量(函數的內部和外部)時,我都指定'global'。使用全局像這樣讓我感覺噁心的...... – emersonthis 2012-03-05 23:08:41