2011-07-13 35 views
0

我認爲我有點在我的頭上,但我有一個wordpress函數,我無法控制,它輸出HTML。從PHP函數存儲輸出

它具體輸出一個<a>標籤。當我嘗試將該輸出存儲到變量中時,它只是將錨標記回顯出來,即使我以爲我存儲了輸出。

我跟一個知道更多關於此事的人交談,他們說這個功能可能使用了自己的輸出系統。

林想知道是否有一種方法來儲存功能輸出之前,它回聲了。像這樣(但是這不起作用):

$link = wp_function(); 

這個迴應出標籤並且不存儲數據。

+0

什麼是你正在試圖用功能的確切名稱? –

回答

2

WordPress的有兩種功能: -

  1. 功能,這不返回任何東西,但呼應out輸出。
  2. 函數不會迴應任何東西,但會返回輸出以供進一步使用。

所有大多數所有函數都以get_作爲前綴以返回值。

例如the_title只是輸出標題,而get_the_title返回標題。

搜索功能是否有get_版本可用並使用它們。

+1

+1,因爲雖然它不能解決問題,但這並不意味着它不是解決問題的正確方法。希望這將在未來幫助其他人。 –

+0

這是我正在使用的功能:http://codex.wordpress.org/Template_Tags/wp_list_categories –

+1

@Nils R:看這裏http://codex.wordpress.org/Function_Reference/get_categories –

1

你應該能夠調用之前ob_startwp_function()呼叫,然後使用ob_get_flush()

ob_start(); 
wp_function(); 
$link = ob_get_flush(); 
+0

我看到ob_get_flush( )是返回字符串並關閉輸出緩衝的組合,但它與ob_get_contents()有什麼不同? ob_end_clean(); –

+0

@Nils:不,它只是將兩者結合在一起。 –

+0

這實際上並不像其他兩個函數那樣「捕捉」輸出。當我使用其他兩個函數時,它會捕獲輸出結果,然後我會對它進行一些操作和正則表達式操作,並將最終結果回顯出來。當我使用單個結束函數時,它仍然回顯原始函數以及我對它做的正則表達式。所以似乎有區別 –

0

您正在使用什麼功能究竟幫助嗎?
您是否嘗試過傳遞'echo'=> false參數?
我已經使用wp_nav_menu()函數的時候有這個問題,這個論點固定它:

$menu = wp_nav_menu('echo' => false);