WordPressで、slugから固定ページや投稿を取得する方法

最終更新:2017-05-12 by Joe

特定の投稿や、特定のページのコンテンツのみを取得したいとき、postIDで取得しても、良いのだが、開発環境においてはDBが別のため、本番とIDが異なるときもある。

slugから投稿を取得する方法

slugを使って記事を取得できれば、開発者だけでなく、Wordpressの管理者自身にも、仕様として分かりやすいだろう。特に、固定ページのスラッグは、管理画面から変更できる

コードはこちら:

$arg = array(
  'post_type'   => 'post',
  'post_status' => 'publish',
  'numberposts' => 1,
  'post_name'   => 'slug_of_page_you_want'
  );
)

$my_posts = get_posts( $arg );

// 取得に失敗していれば、falseが帰ってくるはず。
if( $my_posts )
  echo $my_posts[0]->post_content;

ちなみに、投稿オブジェクトを取得できれば、あとは関連フィールドの取得は容易だ。

投稿のフィールドについては:
http://codex.wordpress.org/Database_Description#Table:_wp_posts

フィールドの値を取得する関数は以下:

コーデックス:get_post_field()