get_the_content() はフィルター ‘the_content’ を適用せずにコンテンツを返します。すなわち、get_the_content() は動画の自動埋め込みや、ショートコードの展開などを実行しません。
本文内容に要因はないのですね。
何ですか?この無意味な回答は。
関数リファレンス/get the content
ここを見れば分かりますが
この関数はループ内で使用しなければなりません。
と書いてあります。少しは調べましょう。
尚、the_content
も同じです。
なので回りくどいですがget_post
などを使ってIDを指定して取得してください。
<?php
$page = get_post( 10 );
echo $page->post_content;
?>
こんにちは
ループ外から、特定の投稿のタイトルや、本文を取得したい場合 以下のようにしても、Okです
$post_id = 36548;
echo get_post_field( 'post_title', $post_id );
echo get_post_field( 'post_content', $post_id );
echo get_the_post_thumbnail($post_id);
ただし、フィルターが通らないので、youtubeのurlなんかを貼り付けた投稿は、普通の投稿のようには表示できないので、
echo apply_filters('the_content', get_post_field( 'post_content', $post_id ));
フィルターが通るようにするといいかも、
CG さん、manboさん、nobitaさん
回答ありがとうございます。
それぞれ試してみましたが出力されませんでした。
もう少し調べて色々試してみます。
テンプレート設定は確実に反映できてますか?
例えばfront-page.php
があったりするといくらsample.php
をフロントページに設定したとしても、見かけは設定できているように見えて実際はfront-page.php
を読み込んでsample.php
を使ってないパターンもあります。
テーマのテンプレートファイル
front-page.php テンプレートファイルがあれば、WordPrss はサイトのフロントページにいつもそれを使います。front-page.php がなければ、「設定 > 表示設定 -> フロントページの表示」のユーザー設定にもとづいて、WordPress が使うテンプレートファイルを決めます。
あ、
<?php echo get_the_title(10); ?>は出力されましたが
って書いてましたね…
-
この返信は6年、 10ヶ月前にmanboが編集しました。
manboさん
ありがとうございます。
下記で試したら出力が確認できました。
<?php
$page_id = 5;
$content = get_page($page_id);
echo $content -> post_content;
?>
<?php
$page_id = 5;
$content = get_page($page_id);
echo $content -> post_title;
?>
あとはアイキャッチのURLを出力も同じようにできるか試してみます。