WordPressで記事IDをコード内で動的に取得する方法

WordPressを使っているとテーマの編集などでPHPコードを修正したり追加したりする。

任意の親ページにぶら下がっている子ページを取得したい時にWP_Query関数とか使ってpost_parentの引数に記事IDを指定するっていうのはいいけど、ここで、記事IDを固定文字で書いちゃうと環境変わったりすると使えなくなる。

なので、環境変わっても使えるように以下のようにした。

サンプルコード

// 例.店舗情報という親ページにぶら下がる全子ページを取得する
$tmp_url = get_bloginfo('home');
$tmp_url = $tmp_url."/"."shops"."/"; // 店舗情報のページのパーマリンクを/shops/とする
$tmp_id = url_to_postid( $tmp_url );
$shops_posts = new WP_Query('posts_per_page=-1&post_type=page&post_parent='.$tmp_id);

解説

url_to_postid関数を使って、URLから記事IDを取得するようにした。

クエリの説明については、以下の通り。

  • posts_per_page=-1 // 全件取得
  • post_type=page // 固定ページ
  • post_parent=$tmp_id // 親ページが記事ID=$tmp_id

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

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