WordPressディレクトリ用のWordPressプラグインを作成しています。
the_content
に含まれているすべてのショートコードを適用した後、どうすればthe_content()
を取得できますか?
説明させてください:
私のプラグインは複数のテーマやウェブサイトで使われるでしょう。ユーザーは自分の投稿やページにショートコードを追加します。私はこれらのショートコードが解析された後に私のプラグインが動作して、それから入力として私のプラグインのためのコンテンツを使用したいです。
テーマのテンプレートファイル(WordPressループ)内で使用された場合、the_content()
はデフォルトですべてのショートコードを適用した後にコンテンツを返します。
カスタムショートコードがある場合は、 add_shortcode
を使用してショートコードハンドラ関数を適用する必要があります(明らかに)。それ以外の場合は、独自のカスタムショートコードは機能しません。
プラグインのコンテンツ関連関数が the loop
から独立して実行されていて、カスタムクエリを使用してコンテンツを取得したい場合は、コンテンツにショートコードを適用するためにdo_shortcode
関数を使用できます。好きです:
$content = do_shortcode( $content );
or、the_content
フィルタを同じ目的で使うことができます。
$content = apply_filters( 'the_content', $content );
ここ あなたは似たような議論を見つけるでしょう。
あなたはおそらくフィルタを探していますか?
add_filter( 'the_content', 'wpse_the_content_filter', 20 );
function wpse_the_content_filter( $content ) {
// Do whatever you want with the $content
return $content;
}
'the_content'をフィルタリングすると、投稿またはページのコンテンツが選択した関数に渡されます。
それを遅らせることを忘れずに(例えば20)そしてそれらが表示されることができるように内容を返す。
ここでより多くの情報:
https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content