WordPressの固定ページ配下に静的HTMLを共存させる方法

WordPressの固定ページ配下に静的HTMLを共存させる方法

WordPressの固定ページ配下に静的HTMLを共存させる方法

WordPressで作成した固定ページの配下に静的HTMLを共存させる方法をご紹介いたします。

例えば、koteiというスラッグの固定ページを作成していて、/kotei/seiteki/はWordPressではなく静的HTMLを設置したいという場合の対処法です。

WordPressの固定ページ配下に静的HTMLを共存させる方法

まずはWordPressインストールディレクトリに、静的HTMLを設置するディレクトリを作成します。今回の例では、以下のように設置しました。

wp/
 ├ kotei/
 │ └ seiteki/
 │  └ index.html

通常は、固定ページのスラッグと同名のディレクトリ(今回の場合は/kotei/)を設置すると、設置したディレクトリ側が優先されるため、固定ページは表示されずディレクトリ内のファイル一覧が表示されてしまいます。

これを回避するには、WordPressインストールディレクトリ直下にあるindex.phpを以下のように書き換えて、koteiディレクトリにコピーします。

require __DIR__ . '/../wp-blog-header.php';

以下のようにkoteiディレクトリの直下にindex.phpを設置します。

wp/
 ├ kotei/
 │ └ index.php
 │ └ seiteki/
 │  └ index.html

すると、/kotei/にアクセスした時は固定ページが、/kotei/seiteki/にアクセスした時には静的HTMLが表示されるようになります。

リダイレクトループが発生した場合

上述の対応をした後、静的HTMLにアクセスした際にリダイレクトループが発生するケースがあるようです。その際は、適用しているテーマのfunctions.phpに以下を追記することで解消します。

remove_filter('template_redirect', 'redirect_canonical');

あとがき

稀に固定ページ配下に静的HTMLを共存させたいという要望をいただくことがあります。

WordPressの固定ページで作成するか、WordPressでは使われていないディレクトリ名で設置するか、いずれかで対応した方が良いとは思いますが、どうしてもという時は上述した対処法をお試しください。

この記事が気に入ったら
いいね!してね♪

Twitter で

2 thoughts on “WordPressの固定ページ配下に静的HTMLを共存させる方法

  1. kisara

    > 以下のようにkoteiディレクトリの直下にindex.phpを設置します。

    > wp/
    >  ├ kotei/
    >  │ └ seiteki/
    >  │  └ index.html
    >  │
    >  └ index.php

    ここが少し分からないのですが、koteiの直下に置くならこのようになるということでしょうか?

    wp/
     ├ kotei/
     │ └ index.php
     │ └ seiteki/
     │  └ index.html
     │
     └ index.php

    1. himecas Post author

      ご指摘ありがとうございます。おっしゃる通りです。
      書く場所を間違えていましたので、投稿も修正いたしました。

コメントを残す

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