ショートコードを使用する単純な WordPress プラグインを作成しています。ショートコードを含むページに特定の<meta>
タグを付けたい。これは可能ですか?もしそうなら、エレガントな方法はありますか?
フック<meta>
を使用してタグを追加できることはわかっていますが、プラグインによって生成された文字列と一致するメタ タグのコンテンツが必要です。wp_head
すべてのコードをヘッダーに移動できましたが、後でショートコードから参照する方法がわかりません。つまり、フィルターで変数を宣言する<head>
と、ショートコードで呼び出しているクラス メソッドでは使用できません。
何か案は?
アップデート:
ショートコードのハンドラー関数がアクションを wp_head フックに追加するという素晴らしい解決策が提案されました。
add_shortcode('fakeshortcode', 'fakeshortcode_handler');
function fakeshortcode_handler() {
function add_meta_tags() {
//echo stuff here that will go in the head
}
add_action('wp_head', 'add_meta_tags');
}
これはうねりですが、問題は、ショートコードが解析されてアクションが追加される前に wp_head が発生することです (したがって、ALONE の上のコードでは何もヘッドに追加されません)。それを機能させるために、この投稿のソリューションを借りました。これは基本的に、投稿を「先読み」し、ショートコードが来るかどうかを確認する機能です。そうである場合、IT は を追加しadd_action('wp_head'...
ます。
編集:変数を渡す方法に関するフォローアップの質問を削除しました。ここで新しい質問です。