私は動的に文字列を作成するWordpressプラグインを作成しています。 wp_head
フックを使用してこの文字列をメタタグに挿入したいとします。可変ワードプレスショートコードを渡すには
私のプラグインは次のように動作します。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
変数が空であることを除いて、機能します。したがって、空のメタタグを表示します。 (add_meta_tags()
をecho "FAKE META TAG";
のように変更することができ、それがヘッダーのどこに表示されるのかがわかるため、他のすべての機能が分かります)
私は何をしていますか?私はそれが可変範囲を伴わなければならないと思うが、私は立ち往生している。
私は変数をグローバリゼーションするいくつかのバリエーションを試しました。なぜなら、私はグローバルのPHPドキュメントで混乱しているからです。関数内でのみグローバルに設定するか、外部にある 'global'宣言に加えて、あなたの提案をグローバルに設定するのですか? – emersonthis
私は元のグローバル宣言に追加でそれを試してみたい –
"正しい"が、それはうまくいればわかりません。私はその変数(関数の内部と外部)を参照するたびに 'global'を指定しています。このようなグローバルを使用すると、私は気分が悪くなります... – emersonthis