記事一覧をカスタムフィールドの値で絞り込んで取得する方法は検索すれば出てくるのですが、固定ページについては見つけられなかったので記事にしました。

今回何故、固定ページをカスタムフィールドで絞り込む必要があったのかというと、下のページのように会員一覧と会員の個別情報を固定ページで作ってしまったからです。

会員一覧
会員の詳細ページ

今回の設計としては、

  1. 会員毎に、所属地域のカスタムフィールドを設定
  2. ショートコードを地域毎に記載
  3. カスタムフィールドで絞り込まれた会員のみが、所属地域に掲載される

という方針としました。

早速コードです。以下のコードを、functions.php へ記載しました。

このコードを書くにあたって一番はまったのは、固定ページ一覧をカスタムフィールドで絞り込むにあたって、get_pages ではうまくいかなかった所です

codex には、 meta_key、meta_value が使えると書いてあったのにです

 get_pages

結果的には、 get_posts が固定ページにも対応しているということが判明したので、 get_posts を使うことにしました。

上のコードでショートコードを生成し、会員一覧ページには、

などと記載すればOKです。

会員詳細ページで、

カスタムフィールドのキー: area
カスタムフィールドの値:ka

を設定した会員のみが絞り込まれて一覧に表示されます。

以上です。

参考になれば幸いです。