WPカスタマイズサイトの1階層下のディレクトリにWordPressをインストールして、サイト全体のテンプレートを適用させたい、というときにやったことをまとめました。構造を決定VineLinux6.2でWebサーバを構築する覚書このように構築したLinuxのWebサーバに、こんな構造のサイトを想定しました。/moduleというディレクトリにheader.phpなどの部品を入れておいて、サイト全体で適用させます。シンプルな内容なのでfooterは今回つくりませんでした。定期的に発行される社内報をブログ形式で閲覧できるようにしたい、という要望により/infoというディレクトリにWP(ver3.9.1)をインストールしました。このWPも/moduleのテンプレートを適用させます。固定ページをトップにした、サイトまるごとWPっていうのもやったことがあるのですが、やはり一長一短ですよね。WPは使うけど、WP外からのテンプレートを読み込み、WP外のトップページへ新着記事を出力する、という形もやってみたらとても勉強になりました。関連記事WordPressで固定ページをブログのトップとして記事を一覧表示する方法メインのテンプレートをつくるWPへ取り掛かる前に、まずは他のページを作ってテンプレートの動作確認をしておかねば。--></body></html>例として、こんな感じのphpファイルにしたいと思います。1~4行目は何をしているかというと、現在のURL(http://を除く)を「/」で分割して$slugという配列に入れると、1番めの配列にディレクトリ名が入るはずなので、それを取得しておきます。イメージはこんな感じ。ここを取得しておけば、そのディレクトリ内のページならば、下層のページでも同じ文字列が取得できます。(トップページのみ空白になるので、空白ならhomeという文字列を入れてやります。)これをハイライトしてある18行目でクラス名として出力してやれば、ナビの実装が簡単になります。この形でCSSを使った実装の詳細はこちらで書いていますWordPress固定ページのスラッグを取得するとナビゲーションとかに使えるかもで、好みの表示になるように/module/style.cssにCSSを記述していきます。11行目でそれを読み込んでいるわけですが、後で部品化して、どの場所からheader.phpが読み込まれても大丈夫なように、絶対パスで指定しておきます。動作確認出来たら、分割します。id="contents">ヘッダーの共通部分はここまでかな?お好みですが。--></body></html>トップページ。1行目でheader.phpを読み込んで、残りを記述します。--></body></html>各ディレクトリ内のindexページ。ヘッダーの読み込み先がトップと違うので注意。謎の余白にハマるさて。これでいけると思ってたのに、アップロードしてブラウザで見てみるとinclude("module/header.php");しているところで謎の余白がががが((└(:3」┌)┘))しばらくハマってたのですが、こういうことだったみたいです。書き直したら直ったぁぁぁぁ。・゚・(ノД`)・゚・。いう違いがあるのですね...。今までPHPはWP管理画面のテーマ編集からいじってて、イチから作ったのは初めてだったので勉強になりました。WP外からテンプレートを読み込むWPで自作テーマを作って、そこへ外部のテンプレートを読み込むように書いていきます。WebクリエイターボックスはじめてWordPressのオリジナルテーマを作るときの参考になればと思って書きました(サンプルダウンロード)テーマを作るときは毎回こちらを熟読させていただいてます。内にテーマ名のディレクトリを作って、その中に必要なモノを用意。*/最低限、先頭にこれだけ書いておけばOK。WPだけ適用したいようなCSSがあればこの下に書いていきます。?></body></html>メインループの中身は簡単に端折りますが、ざっくりこんな感じ。1行目でWP外のヘッダーを読み込んであげます。サイドバーも欲しい方はお好みで。有無に関わらず必須です。これと、ヘッダーにもwp_head();がないといけません。id="contents">先ほど作ったWP外のヘッダーにハイライト部分を追記します。ナビ実装のために作った変数を利用して、/infoディレクトリ内のページ(WPページ)の時だけ、WPのスタイルシートとwp_head();を読み込みます。今回は作りませんでしたが、footerも部品化したい場合はこれと同じようにWPページの時だけwp_footer();を出力してやるように書けば良いと思います。コピーしてベースに使えば、普通のWPサイトを作るのと変わらないので、以下割愛。使ってやれば簡単ですー!これ使えば、他のページにもいろいろできそうですね!(*゚Д゚*)以上です!自分備忘録ではありますが、どなたかのお役に立てたら幸いです。初心者でも、“デキる奴”と思わせるプレゼンテーションの基本とコツこれからExcelのマクロを勉強したいという方に!簡単な練習問題作りました。PMコメント失礼します。同じような構造でサイトを作っており、wp外のトップページに新着記事が表示したかったのですがやり方がわからず、RSS表示ツールを使ったら広告まで表示されるようになってしまい困っていました。この記事のおかげで無事に解決しました!とても助かりました。PMとても参考になります。PMもっふさん、コメントありがとうございます。いう意味でよいでしょうか。同じで、メインループの中に書きます。?></body></html>ざっくりですがこのような感じですかね。the_content()で記事の中身を出力するのと、コメントが必要ならcomments_template()も書くと出てきます。いうのができたので便利ですよー。AM望んでいた構造のサイト制作を色々と調べていた中でこちらのサイトを拝見し、大変参考にさせていただいております。お聞きしたいことがあります。初歩的なことで大変恐縮なのですがcategory/news(newsの一覧ページ)へのリンクを/module/header.php(WP外)のナビに加えたい場合、どう記述すれば良いのか?(おそらくリンク先はcategory-news.phpであったりすると思われますが。ような)具体的なphpの中身をご教授していただけないでしょうか。PMロッソさん、コメントありがとうございます。動作検証してないので確実じゃないですが、概ね以下のような形になると思います。しておりますので、読み換えてください。id="contents">ベタで書くとこんな感じでしょうか。リストの入れ子構造やCSSは調整ください。変数を使えば、スラッグが変更されたときにそのまま対応することもできます。次にWPテーマ内に書くアーカイブページのテンプレートですが、これを書くファイルは目的によって異なります。