こんな悩み、ありませんか?
- 開発中に毎回同じ固定ページを手動で作るのが面倒
- 本番反映前に決まったページ構成だけサッと作っておきたい
- テーマセットアップ時に自動でページを準備したい
そんなあなたのために、functions.phpから1回の処理で複数の固定ページを自動生成する方法を紹介します。
管理画面は一切使いません。コーディングだけで完結します。
コード:functions.phpに追加するだけ
function create_custom_pages_once() {
$pages = [
'slug1' => 'ページ1',
'slug2' => 'ページ2',
'slug3' => 'ページ3',
];
foreach ($pages as $slug => $title) {
if (!get_page_by_path($slug)) {
wp_insert_post([
'post_title' => $title,
'post_name' => $slug,
'post_status' => 'publish',
'post_type' => 'page',
]);
}
}
}
add_action('init', 'create_custom_pages_once');functions.phpこのコードのポイント解説
- 初回アクセス時のみ実行:get_page_by_path()で既に存在するかチェックしています
- 重複なし:同じスラッグのページが既にある場合はスキップ
- 公開状態で作成され、すぐに表示可能
一度作成したらコードは削除してOK
この関数はページが存在しないときだけ動作します。
つまり、すでに作成されたあとはfunctions.phpから削除しても問題ありません。
テーマ配布用や初期セットアップ用途に最適です。
注意点・応用例
- テーマを切り替えるとfunctions.phpが変わるため、再実行には注意
- 生成ページに親ページやテンプレートを指定したい場合はpost_parentやpage_templateのキーを追加可能
- 条件付きで実行したい場合は、current_user_can(‘administrator’)などで制限可能
まとめ:本番前のページ準備を一瞬で
管理画面で何度も固定ページを作成するのは意外と手間ですが、この方法を使えば1度きりの処理で一括生成が可能です。
開発効率化やテーマ初期構築の自動化にぜひ活用してみてください。


コメント