ワードプラスの個別の投稿のコンテンツなどは、while(have_posts()): the_post(); という処理で取得されますが、このループ外でページや投稿のコンテンツやIDを取得するPHPコードをご紹介いたします。
ワードプレスの投稿やページのIDを取得する
ワードプレスの投稿は一般的にはループと呼ばれる処理の中で取得処理されます。
if (have_posts()) : while ( have_posts() ) : the_post(); $post_id = get_the_ID(); endwhile; endif;
このループ外で投稿のIDを取得するコードは下記のようになります。
※このコードは投稿やページを表示するテーマのコード(single.php,post.php)や単一の投稿やページを表示する処理の前後でしか動作しませんのでご注意ください
global $wp_query; $post_id = $wp_query->get_queried_object_id();
またこのIDから、コンテンツを取得して何らかの処理を行うことも可能です。
global $wp_query; $post_id = $wp_query->get_queried_object_id(); $content = get_post_field( 'post_content', $post_id ); //1 $content = apply_filters( 'the_content', get_post_field( 'post_content', $post_id ) ); //2
1で投稿IDから、投稿のコンテンツのデータを取得します
2でショートコードやコンテンツ関連のプラグイン等の処理を実行させます
この結果$contentに投稿や固定ページのコンテンツが生成されて代入されます。