投稿IDでWordPress投稿コンテンツを取得する


141

投稿IDでWordPress投稿コンテンツを取得するにはどうすればよいですか?

回答:


177

シンプルに

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;

85
特定のフィールドの$content = get_post_field('post_content', $my_postid);
省略形

4
@Bainternet私はここで興味があります...その部分$content = str_replace(']]>', ']]>', $content);は何ですか?そこでの目的は何ですか?
平均ジョー

1
@AverageJoeの基本的な検索と置換。the_content()を使用すると、コンテンツがフィルタリングされます。上記の例ではコンテンツが直接取得されたため、作成者は検索と置換を使用して安全にしています。
ハリッシュチョウハン14年

2
多分あなたも同様do_shortcode()必要$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus

とにかく「more_link」を保持する方法はありますか?
user2128576

126
echo get_post_field('post_content', $post_id);

61
のようにそれを行う方が良いecho apply_filters('the_content', get_post_field('post_content', $post_id));。たとえば、qTranslateを使用する場合、ソリューションでは不十分です。
カレルAttl

4
これは、WordPress編集ページにあるように投稿コンテンツを取得することを目的とする場合の最良の回答です。
mcont 14

@KarelAttlからのコードがないと、行が欠落します。apply_filtersコードを使用すると、完全に機能しました。
アレクサンダータウベンコブ

1
apply_filters良いオプションですが、私の現在の目的には適していませんでした。両方のオプションがあると便利です。
ナイトホーク

25

投稿IDでWordPress投稿コンテンツを取得する別の方法は次のとおりです。

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

この回答を完了するために、この回答にメソッド01とメソッド02も追加しました。

方法01(クレジットはbainternetに送られます):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

方法02(クレジットはrealmag777に送られます):

$content = get_post_field('post_content', $my_postid);

方法03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

投稿IDでWordPressコンテンツを取得するための最良かつ効率的な方法とその理由を読んでください上記3つのうちどれを使用すべきかについてのアイデアを得るための質問。


0

複数の投稿が必要な場合は、を使用してくださいget_posts()。メインのクエリはそのままにして、ループしやすい投稿の配列を返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.