無条件で1,500円分の
Amazonギフト券が貰えるって本当!?

WordPress

【WP】特定の投稿・個別ページの内容をループ外から呼び出す方法

ループ外から特定ページを呼び出す方法

通常WordPressで投稿・個別ページを出力するには、「while(have_posts()): the_post();」のループ内で「the_content()」関数を使えばいいのですが、ループ外から特定のページを呼び出したい場合はどうすれば良いのでしょうか...?

当記事では、"特定の"投稿・個別ページの内容をループ外から呼び出す為の、下記の3つの関数を解説します。

  • get_post()
  • get_post_field()
  • apply_filters()

get_post()

今回解説する関数の中で、一番回りくどいやり方です。

get_post()関数を使って特定のページを呼び出すには、下記の様に記述する必要があります。

<?php
    $page = get_post( 11 );//「11」はページID
    echo $page->post_content;
?>

流れとしては、初めにget_post()関数でページIDを指定してページを取得し、取得した情報からpage_contentで本文を抜き出しているという感じです。

ただしこの方法だと、本来WordPress側で自動加工してくれるはずの箇所や、導入しているプラグイン(目次など)が反映されません。

get_post_field()

get_post_field()関数を利用すると、get_post()と同様の効果を1行で実現できます。

get_post_field()関数は下記の様に記述します。

<?php get_post_field( 'post_content', 11 );//「11」はページID ?>

1行で簡潔に記述することができるので便利ですが、こちらもget_post()を用いる方法と同様で、自動加工や導入済みプラグインの反映がされません。

apply_filters()

apply_filters()関数を使うことで、フィルターフックに追加された関数を呼び出すことができます。

簡単に説明するなら、加工された本来の姿でページ本文のデータを取得してくれるよ!ということです。

apply_filters()関数は下記の様に記述します。

<?php apply_filters('the_content', get_post_field( 'post_content', 11 ));//「11」はページID ?>

最後に

基本はループ内でthe_content()関数を使えばいいだけですが、もしループ外で特定ページを呼び出す時が来たら、今回解説した3つの関数を思い出してみて下さい!

\ プログラミングスクール厳選ランキング /

プログラミングスクール厳選ランキングTOP10!

プログラミングスキルを身につけるべく、スクール受講を検討している方に向けて、数多く存在するスクールの中から厳選した10社をランキング形式でご紹介!無料体験を受講することで、誰でも1,500円分のAamazonギフト券が貰えるお得なキャンペーンも実施しているので、ぜひこの機会を逃さずにチェックしてくださいね!

今スグ詳細をチェックする

-WordPress

© 2021 ユウマのブログ