質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4144閲覧

【wordpress】ディレクトリ構成で悩んでいます

t-book

総合スコア29

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/04/13 17:44

編集2015/04/13 18:03

こんにちは。いつもお世話になっております。
現在wordpressで一部ページをCMS化したサイトを作成しています。
理想とするディレクトリ構成がなかなか上手くできずに困っております。
どのようにすれば実現できるのか、ご助言いただきたく投稿いたします。

実現したいディレクトリ構成

root┬─/_cms/─/wp/─/wp-config... │ ├─/post1/ │ ├─/page1/ │ ├─/hoge/┬─index.html (.phpならできるが...) │ ├─/post2/ │ └─/page2/─/page3/ (略) └index.html (.phpならできるが...)
  • /_cms/ 以下にwpをインストール
  • /post1/は投稿タイプとしてルート直下のサブディレクトリで表示させたい
  • /page1/は固定ページとしてルート直下のサブディレクトリで表示させたい
  • /post2/はカスタム投稿タイプとして、/hoge/以下のサブディレクトリで表示させたい
  • /page2/は固定ページとして、/hoge/以下のサブディレクトリで表示させたい
  • /page3/は固定ページとして、/page2/以下のサブディレクトリで表示させたい
  • ルートおよび/hoge/のトップページをindex.htmlにしたい

現在行っていること

  • インストールとは別ディレクトリでwpを使うために

ルート直下にindex.phpを置いて、requireでインストール先pathを指定

  • /post1/, /post2/のURL

post1は通常のパーマリンクで設定
post2はCustom Post Type Permalinksで、/hoge/以下を指定できるようパーマリンク設定

  • /page2/, /page3/のURL

/hoge/という固定ページを作成して、それを親としてpage2を、その孫としてpage3の固定ページを作成

index.php -> index.htmlにできないか

ルートおよび/hoge/直下のindex.php(正確には/hoge/という固定ページの作成)は、中身自体には動的な要素は無いためできれば普通のhtmlとして管理したいのです。
(本番サーバのスペックが不明なため、なるべく動的生成ページは避けたいとの意図があります)

現在試行錯誤していること

  • ルート直下にindex.phpをおかないで、別ディレクトリにインストールしたwpをサブディレクトリで使用できないか

検討つきません...

  • page2,3固定ページのパーマリンクに、直接下階層のURLを指定できないか

親子関係ではなく、Custom Post Type Permalinksを使った時のように直接、下階層を指定したい
(/hoge/固定ページを作成しないで、/hoge/page2/のように指定したい)

Custom Permalinksを使えば同じように自由にパーマリンクを設定できるが、投稿タイプやカスタム投稿タイプにも自由編集機能が反映されてしまうため避けたい...

以上、長文となってしまいましたが何か妙案がありましたらご教授いただければ幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決方法

  • 今まで通りルート直下にはindex.phpを設置し、/hoge/は固定ページとして作成しておく
  • それぞれ同じ階層にindex.htmlを設置し、.htaccessで.phpよりも.htmlが優先されるように設定

DirectoryIndex index.html index.php
※index.phpの設置、/hoge/固定ページの作成すらしなくて済むのであればなお良いのですが、さほど実害も無さそうなので...
※なお/index.html, /index.phpでアクセスしようとすると、wp側で / へリダイレクトされる模様

解決できなかった理由

後学のために、なぜすぐに思いつかなかったのか、メモしたいと思います。

  • index.htmlとindex.phpを同じ階層に置くという発想がなかった

確かに普通に考えればファイル名が同じでも拡張子が異なれば別ファイルのはずなので、並列にしても問題なかった。
すると実際の表示はどうなるのか → サーバ側で拡張子の優先順位を設定することができることを知った

  • ルートのindex.phpでwpの環境設定テンプレを読んでいるので、index.htmlをおいたらwpが動作しなくなると思い込んでいた

require( './.../wp-blog-header.php' );
確かにindex.phpを消してしまうと/post1/など表示できなくなってしまった。
しかしindex.phpを残してindex.htmlを用意し優先順位を付けただけでは、変わらず表示されることが確認できた。※恐らく表示上の優先順位だけであり、内部的にindex.php内に記述したrequireは動作してくれる模様。

投稿2015/04/14 03:11

t-book

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

たくさん質問がありましすが、ひとつずつ。

index.php -> index.htmlにできないか

index.htmlを作成してアップロードしたい、という話でしょうか。
WordPressとは無関係に、手でアップロードするのは問題ありません。
WordPressの管理コンソールから、index.htmlを編集できるようにする、ということだとすると、うーんという感じです。できるようにすることは可能ではあるけれど、DocumentRoot下のディレクトリにあるファイルを直接編集する機能をWordPressに持たせることは、セキュリティホールを作りかねないので、私ならやりません。

なお、

(本番サーバのスペックが不明なため、なるべく動的生成ページは避けたいとの意図があります)

とのことですが、実際には<?php ?>が含まれていない、拡張子が.phpであるだけの静的ファイルの負荷は、.htmlとほとんど変化ないと思います。厳密には違いはありますが、それが問題になるほどのPVがあるなら、WordPressはまともに動かないんじゃないかな...

投稿2015/04/13 23:20

chokojori

総合スコア971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t-book

2015/04/14 03:07

chokojori 様 ご回答ありがとうございます! > index.htmlを作成してアップロードしたい、という話でしょうか。 その通りです。wp上でhtmlを編集したいということはありません。 > 実際には<?php ?>が含まれていない、拡張子が.phpであるだけの静的ファイルの負荷は、.htmlとほとんど変化ないと思います。 そうでしたか!.phpは負荷が重たいとの漠然とした認識があったため、.htmlファイルに変えるべきだと思い込んでいました。 今回のケースの場合、負荷という観点では気にすることはない、と分かっただけでもありがたいです! せっかくご質問いただいた中で恐縮なのですが、ほぼ後述の様な手順で解決することができました。 今回は自己解決という形になってしまいましたが、chokojori様の「WordPressとは無関係に、手でアップロードするのは問題ありません」 との一言でふと思いつきましたので、改めて御礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問