WordPressでタイトルからページの情報を取得する方法

WordPressでタイトルからページの情報を取得する方法

WordPressでタイトルからページの情報を取得する方法

投稿や固定ページのタイトルから、投稿ID等のページ情報を取得する方法をご紹介いたします。

投稿のタイトルから情報を取得する方法

投稿のタイトルから情報を取得するには、get_page_by_title関数を使用します。

以下のように記述することで、投稿のページ情報を取得できます。同じタイトルの投稿が複数存在する際は、投稿IDが最小の投稿を返します。「post」の部分で投稿タイプを指定しています。

$post = get_page_by_title('タイトル', OBJECT, 'post');

上記の場合、$postには以下の情報が格納されます。

$post->ID 投稿ID
$post->post_author 著者ID
$post->post_date 投稿日
$post->post_date_gmt 投稿日(GMT)
$post->post_content 本文
$post->post_title タイトル
$post->post_excerpt 抜粋
$post->post_status ステータス
$post->comment_status コメントステータス
$post->ping_status ピンバックステータス
$post->post_password アクセスパスワード
$post->post_name スラッグ
$post->post_modified 最終更新日
$post->post_modified_gmt 最終更新日(GMT)
$post->post_parent 親ページ
$post->guid デフォルトのURL
$post->menu_order 先頭に固定
$post->post_type 投稿タイプ
$post->comment_count コメント数
$post->post_mime_type MIMEタイプ

「echo $post->ID;」のようにそのまま値を出力することも可能ですが、他の処理と組み合わせるケースの方が多いと思います。

function my_content( $content ) {
  $post = get_page_by_title('タイトル', OBJECT, 'post');
  if ( is_single( $post->ID ) )
    $content = "本文の置き換え";
  return $content;
}
add_filter( 'the_content', 'my_content' );

こちらの例は、該当するタイトルの投稿本文を置き換えています。

固定ページのタイトルから情報を取得する方法

固定ページのタイトルから情報を取得する場合もget_page_by_titleを使用します。投稿と同様に、同じタイトルの固定ページが複数存在する際は、投稿IDが最小の固定ページを返します。

固定ページの場合は取得した値を直接出力できないので、以下のように他の処理と組み合わせて活用します。

$page = get_page_by_title( 'タイトル', OBJECT, 'page' );
wp_list_pages( 'exclude=' . $page->ID );

上記の場合、該当するタイトルの固定ページを除外した一覧を出力します。

あとがき

投稿や固定ページのタイトルからページの情報を取得したい場合は、ぜひ参考にしていただければと思います。

なお、「URLからページタイトルを取得・出力する方法」も過去に紹介していますので、こちらもぜひチェックしてみてください。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です