web-dev-qa-db-ja.com

投稿IDでWordPressのコンテンツを取得するための最善/効率的な方法は何ですか、またその理由は何ですか?

私はちょうど投稿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));

上記の方法からの最良の/効率的な方法は何ですか、またその理由は何ですか?

3
Ranuka

比較のために提供するメソッドはほとんど同じですが、わずかなAPIの違いと、the_contentフィルタが適用されるかどうかが異なります。

ループ内ではget_the_content()が通常使用されるべきで、これはページへの分割などを適切に処理します。

生のコンテンツを取得するにはget_post_field()が一般的に適していますが、それ以降の処理(the_contentフィルタなど)はコンテンツを取得する特定の 目的 およびそれを使って何をしようとしているかに大きく依存します。

PSは、多くの拡張が愚かで、loop /の外側で2回以上実行されたthe_contentフィルタをさまざまに破ることに注意してください。

3
Rarst