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


10

投稿のIDで投稿のコンテンツを取得するにはどうすればよいですか?get_page('ID');コンテンツを表示しようとしましたが、機能しません。


1
上のドキュメントを読もうともしないので、反対票を投じてくださいget_page()。それは非常に昔に減価償却されています。また、この問題に関するサイトには無制限のリソースがあります。グーグルでさえこれに関するたくさんの情報があります
Pieter Goosen

回答:


17

あなたはそれを複数の方法で行うことができます。次の2つの方法が最適です。

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes

別の方法

$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes

Pieter Goosenに提案された後apply_filters

apply_filters他のプラグインでコンテンツをフィルタリングしたい場合に使用できます。これにより、使用する必要がなくなりますdo_shortcode

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo apply_filters('the_content',$content);
 //no need to use do_shortcode, but content might be filtered by other plugins.

他のプラグインがこのコンテンツをフィルタリングすることを許可せず、ショートコード機能が必要な場合は、を使用してくださいdo_shortcode

ショートコードも必要ない場合は、で遊んでくださいpost_content


なぜあなたが使っているのか不思議に思うdo_shortcode
Pieter Goosen

こんにちはお問い合わせいただきありがとうございます。@PieterGoosen raw content投稿の取得中です。投稿に埋め込まれたショートコードは処理されません。それで私たちは自分たちでそれをやっていますdo_shortcode
WPTC-Troop

2
より良い方法はを使用することですapply_filters( 'the_content', $content );。この方法では、the_content()likeに適用されるすべてのフィルターとwpautopショートコードハンドラーがに適用され$contentます。;-)。複数形に注意してくださいfilters
Pieter Goosen

1
はい、意味のあるapply_filters代わりに使用しdo_shortcodeます。しかし、使用apply_filterは純粋に彼らの環境決定に基づいています。私の答えも更新させてください。コミュニティ@PieterGoosen上ごケアのためのありがとうございました
WPTC-部隊

0

ここでは、時々役立つと思われるもう1つの厄介な醜い方法を残しておきます。もちろん、API呼び出しを使用するメソッドが常に推奨されます(get_post()、get_the_content()、...)。

global $wpdb;
$post_id = 123; // fill in your desired post ID
$post_content_raw = $wpdb->get_var(
    $wpdb->prepare(
        "select post_content from $wpdb->posts where ID = %d",
        $post_id
    )
);

0
$id = 23; // add the ID of the page where the zero is
$p = get_page($id);
$t = $p->post_title;
echo '<h3>'.apply_filters('post_title', $t).'</h3>'; // the title is here wrapped with h3
echo apply_filters('the_content', $p->post_content);

1
回答を編集し、説明を追加してください。なぜ問題を解決できるのでしょうか。
fuxia

-1

を使用してget_page('ID')

$page_id = 123;  //Page ID
$page_data = get_page($page_id); 
$title = $page_data->post_title; 
$content = $page_data->post_content;

1
あなたは本当にドキュメントを読もうとさえしなかったので、反対票を投じました。get_page()減価償却済み
Pieter Goosen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.