2011-07-13 9 views
0

私はこれに私の頭の上にビットだと思うが、私は制御できないと私はHTMLを出力するワードプレス機能があります。PHP関数からの出力を格納

具体的には<a>というタグを出力します。その出力を変数に格納しようとすると、出力を格納していると思っても、アンカータグがエコーされます。

私はこのことについてもっと知っている人に話しました。彼らはおそらくその機能が独自の出力システムを使用していると言いました。

私はそれをエコーアウトする前に関数の出力を保存する方法があるのだろうかと思っています。このように(しかし、これは動作しません):

$link = wp_function(); 

これはタグをエコーアウトし、データを保存しません。ここ

+0

あなたがしようとしている機能の正確な名前は何ですか? –

答えて

2

Wordpressのは、2種類の機能を持っている: - 何かを返しますが、出力をエコーし​​ません

  1. 機能。
  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

あなたは前にあなたのwp_function()コールにob_startを呼び出してから、ob_get_flush()を使用することができるはずです。

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

私はそのob_get_flush )は、文字列を返し、出力バッファリングをオフにする組み合わせですが、ob_get_contents()とはまったく異なります。 ob_end_clean(); –

+0

@Nils:いいえ。それは2つを組み合わせるだけです。 –

+0

これは、実際には他の2つの機能と同じように出力を「キャッチ」していないようです。私は他の2つの関数を使用すると、出力が何であってもそれをキャッチし、次にそれを操作して正規表現を行い、最終結果をエコーし​​ます。私は単一の終了関数を使用すると、それは元の関数と正規表現のものをそのままエコーします。だから違いがあるようだ –

0

に役立つかもしれませんか?
'echo' => false引数を渡そうとしましたか?
私はwp_nav_menu()関数を使用する場合に、この問題を持っていたし、この引数でそれを固定しています

$menu = wp_nav_menu('echo' => false); 
関連する問題