web-dev-qa-db-ja.com

IDで投稿内容を取得する

投稿IDで投稿のコンテンツを取得する方法get_page('ID');を使ってコンテンツを表示しようとしましたが、うまくいきません。

9
viral m

あなたはそれを複数の方法で行うことができます。次は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で遊んでください。

13
WPTC-Troop
$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);
0

私はここであなたが時々役に立つと思うかもしれないもう一つの厄介な醜い方法をここに残すつもりです。もちろん、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
DrLightman