【管理画面いらず】WordPress固定ページをfunctions.phpから一括生成する方法

Web運用(サイト構築)

こんな悩み、ありませんか?

  • 開発中に毎回同じ固定ページを手動で作るのが面倒
  • 本番反映前に決まったページ構成だけサッと作っておきたい
  • テーマセットアップ時に自動でページを準備したい

そんなあなたのために、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度きりの処理で一括生成が可能です。

開発効率化やテーマ初期構築の自動化にぜひ活用してみてください。

コメント

タイトルとURLをコピーしました