閉じる

技術ブログ

固定ページの記述

固定ページの記述

制作者一般には「投稿」より「固定ページ」の方がどちらかというと実装機会が少ないような気がする。

ここでは「久しぶりに固定ページのテンプレートを実装した」というコーダー向けに備忘録を記述する。

スラッグの重複

固有のスラッグの生成するwp_unique_post_slug関数で固定ページなど親子関係を持つpost_typeは同じpost_parentかつ同じpost_nameがないことをチェックしているので親ページが違えばpost_nameが同じでもpost_slugとしては固有とされる

WPの投稿検索の基本になるwp_queryクラスにおいてpostnameのパラメータが渡された場合でもget_page_by_pathで処理され親子関係を考慮して検索されるようになっているのでpost_nameが同じだけで投稿が混同されることはない

「Template Name: (テンプレート名)」による管理画面プルダウンへの適用

固定ページpage.phpでの「単一記事」の記述

while(have_posts()):the_post();の部分はthe_contentなどを利用するためには必須。

if(have_posts()):は必要かどうかと言われれば不要だが、投稿アーカイブなどとあわせてセットで入れておいても良いだろう。

固定ページpage.phpでの「記事一覧」の記述

固定ページで記事一覧を作成するには、サブクエリを作成してサブループにて取得する。

サブクエリー抽出条件設定関数はfunction.php内に記述
pressx.jp テンプレートでは inc/jnm-settings-sub-query.php内に記述

抽出条件取得関数を呼び出して条件取得、サブループ実行

page-(スラッグ).php

ある1つの固定ページ専用のテンプレートファイルは以下。
page-{slug}.php
page-{ID}.php

参考記事