web-dev-qa-db-ja.com

<p>タグ付きのpost_contentを取得しますか?

特定の投稿の投稿内容を取得しようとしています

$post = get_post(/* id */);
$content = $post->post_content;

ただし、これは改行なしでコンテンツを取得します。私はこれがすべてを省略しているために気づいた

タグ.

どのようにしてコンテンツを取得することができますか

投稿ページや投稿エディタのテキストタブにも表示されるので、タグ

15

両方の答えはこれまでのところ正しいですが、もっと徹底的な答えが正当化されるようです。

あなたがこれを使うならば:

$content = wpautop( $post->post_content );

投稿コンテンツに段落タグを追加する関数を1つ適用しています。 wpautop()the_contentにフックする多くの関数(時にプラグイン関数を含む)の1つです。

$content = apply_filters('the_content', $post->post_content);

あなたは投稿コンテンツがデフォルトでwpautop()を含むthe_contentのフィルタを通過するようになっています。

最後に、ループに入っている場合は、これを実行するだけです。

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

これは本質的に2番目のコードスニペットのラッパーですが、もちろん少し見栄えがいいです。 2018年9月1日更新: コメント に基づいて修正。小道具@timmb。

一般的に、私はこれを行うための好ましい「正しい方法」は最後から最初までであると言うでしょう。なぜなら、コアWP関数を使うことはより後方互換性を可能にするはずです。他に決めなければいけないことは、WordPressとプラグインが投稿コンテンツも変更できるようにするかどうかです。その場合は、必ず2番目または3番目のオプションを使用してください。

25
mrwweb

解決策が見つかりました:

$content = apply_filters('the_content', $post->post_content);
5

Pタグ付きの投稿コンテンツを取得する2番目の方法は、

echo wpautop( $post->post_content );
2
DINESH BHIMANI