私はショートコードを使用する簡単なワードプレスプラグインを作成しています。ショートコードを含むページに具体的な<meta>
タグが必要です。これは可能ですか?もしそうなら、それを行う上品な方法はありますか?ワードプレスのショートコードを使用して<meta>タグを追加する
wp_head
フックで<meta>
タグを追加できますが、メタタグのコンテンツをプラグインによって生成された文字列に一致させることができます。私はすべてのコードをヘッダーに移すことができましたが、後でショートコードから参照する方法がわかりません。つまり、フィルタで<head>
の変数を宣言すると、ショートコードで呼び出すクラスメソッドでは使用できません。
アイデア?
UPDATE:
ショートのハンドラ関数は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より上のコードでは何も頭に追加されません)。それを機能させるために、私はthis postで解決策を借りました。これは、基本的には、ポストに「先を向ける」機能であり、ショートコードがあれば見ることができます。そうであれば、ITはadd_action('wp_head'...
を追加します。
EDIT: 変数を渡す方法に関する私のフォローアップの質問を削除しました。 新しい質問hereです。
これはクールだ。私はwp_headアクションが起こる前にショートコードが解析されたことに気づいていませんでした。私はすぐにこれを試してみましょう。あなたが正しいなら、私はそれが私の問題をうまく解決するだろうと確信しています! – emersonthis
私の疑惑は正しかった。ショートコードが解析される前にwp_headアクションがトリガーされます。したがって、この解決法は説明されているとおりに正確に動作しません。しかし、アプローチは変更することができます... [上の私の更新を参照してください] – emersonthis
申し訳ありませんEmerson、私はあなたがしようとしていたことを誤解しました。以前は実行されていません。したがって、私は自分のソリューションを編集して正しく動作させるようにしました。 – Maxime