WordPressで投稿本文を取得する方法の一つで「get_the_content」を使う方法があるんですが、ショートコードが展開されないまま取得されます。
もし、取得した投稿本文に対して「特定の文字列があるかどうか」をチェックして、その文字列を加工したい場合があるとします。
例えば「get_the_content」を使って取得した投稿本文に対して、チェックしたい文字列がショートコードの展開後に含まれるものだとしたら、チェックが漏れてしまいますね。
というわけで、ショートコードを展開済みで投稿本文を取得するには、以下の方法でできます。
//現在の投稿本文をショートコードを展開させて取得 $content = apply_filters( 'the_content', get_post_field('post_content', get_the_ID()) );
やっていること
「get_post_field」を使って現在の投稿の本文を取得して、フィルター「the_content」を適用して変数「$content」に格納しています。
コード中で使った「get_the_ID」「get_post_field」については、以下のページをご参考ください。
このページを共有する