私はちょうど投稿IDでWordPressのコンテンツを取得したいと思いました。投稿IDでWordPressのコンテンツを取得するには、次の3つの方法があります。 (このサイトで見つけた以下のすべての方法。)
方法01:
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
方法02:
$content=get_post_field('post_content', $my_postid);
方法03:
$content=apply_filters('the_content', get_post_field('post_content', $my_postid));
上記の方法からの最良の/効率的な方法は何ですか、またその理由は何ですか?
比較のために提供するメソッドはほとんど同じですが、わずかなAPIの違いと、the_content
フィルタが適用されるかどうかが異なります。
ループ内ではget_the_content()
が通常使用されるべきで、これはページへの分割などを適切に処理します。
生のコンテンツを取得するにはget_post_field()
が一般的に適していますが、それ以降の処理(the_content
フィルタなど)はコンテンツを取得する特定の 目的 およびそれを使って何をしようとしているかに大きく依存します。
PSは、多くの拡張が愚かで、loop /の外側で2回以上実行されたthe_content
フィルタをさまざまに破ることに注意してください。