web-dev-qa-db-ja.com

すべてのショートコードが解析された後のthe_content

WordPressディレクトリ用のWordPressプラグインを作成しています。

the_contentに含まれているすべてのショートコードを適用した後、どうすればthe_content()を取得できますか?

説明させてください:

私のプラグインは複数のテーマやウェブサイトで使われるでしょう。ユーザーは自分の投稿やページにショートコードを追加します。私はこれらのショートコードが解析された後に私のプラグインが動作して、それから入力として私のプラグインのためのコンテンツを使用したいです。

4
kuldip

最初の規則:

テーマのテンプレートファイル(WordPressループ)内で使用された場合、the_content()はデフォルトですべてのショートコードを適用した後にコンテンツを返します。

第二の規則:

カスタムショートコードがある場合は、 add_shortcode を使用してショートコードハンドラ関数を適用する必要があります(明らかに)。それ以外の場合は、独自のカスタムショートコードは機能しません。

第三の規則:

プラグインのコンテンツ関連関数が the loop から独立して実行されていて、カスタムクエリを使用してコンテンツを取得したい場合は、コンテンツにショートコードを適用するためにdo_shortcode関数を使用できます。好きです:

$content = do_shortcode( $content );

or、the_contentフィルタを同じ目的で使うことができます。

$content = apply_filters( 'the_content', $content );

ここ あなたは似たような議論を見つけるでしょう。

2
Scott

あなたはおそらくフィルタを探していますか?

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

1
Pedro Coitinho