スラッグ名からページIDを取得するにはget_page_by_path
最近Wordpressを触ってます。
実は先月くらいに勤め先のサイトをリニューアルしようという話がありまして、これ幸いと手を挙げ、色々調べているといった感じです。
会社のサイトなので、ブログ形式ではなくヘッダとメニューとコンテンツがある、いわゆる普通のホームページなんですが、これが意外と情報が少なくて困りました。
関数リファレンスもとかあるんですが、当然未訳の部分も多くて大変です。
そんな中でいろいろ分かったこともメモっていきます。
スラッグ名からページIDを取得
ページ一覧からリストを生成するwp_list_pages()関数というのがありまして、この関数で特定のページだけを表示するには引数で「include=1,2」みたいに指定するのですが、これのパラメータがページIDなんです。
会社サイトは普通のページなのでURLを固定ページにしてるため、どうにかしてページIDにしないといけないのでうが、それでget_page_by_path()を使います。
<?php $id = get_page_by_path('slug')->ID; ?>
get_page_by_path()の戻り値はページオブジェクトなので、ページID以外にも色々取得できます。
<?php $page = get_page_by_path('slug'); echo $page->post_content;&tab;ページ本文 echo $page->post_title;&tab;ページタイトル echo $page->post_name;&tab;URLの一番右側 ?>
ちなみにスラッグ名とはURLのホーム以降の部分です。
http://localhost/wordpress/slug/なら「slug」がスラッグ名です。
http://localhost/wordpress/slug/hoge/なら「slug/hoge」がスラッグ名です。