これまでサイトのトップに設置していたCakePHP。そしてこのところ多数利用しているWordPress。どちらもサイトのトップに使うことが出来る。また、CakePHPはwebrootを持っているから、この配下にWordPressを設置することもできる。これについてはこれまでも述べてきた。
さて、CakePHPの柔軟性とWordPressの使いやすいシステム。プラグインやテンプレートを自由に即座に変更できるメリットは大きい。そこで、先日、CakePHPとWordPressの連結を誰かが何か作っていないか調べたところ、「フロントエンド」と「バックエンド」という考え方を教えられた。これにははっとした。どちらかを択一的に利用することばかり考えていたように思えたからだ。
「WordPressの使いやすさ」と「CakePHPによる柔軟なシステム」。そのまま「フロントエンド」と「バックエンド」としたほうが筆者にはよさそうだ。つまり、基本にWordPress、システムにCakePHP。必要なものを必要なところに配置することがミッション達成を早くしてくれそう。
うまいことCakePHPとWordPressが連結してくれると良いのだけれど・・・例えばユーザ管理など。いくつかのサイトではWordPressのデータをCakePHPのデータベース切り替え機能を使って取得する方法も記載されていた。CakePHPからWordPressのテーマが利用出来るととても嬉しいのだけれど、WordPressのテーマファイルはプログラムになっているからMovableTypeユーザに好まれないとも聞く。MovableTypeは使ったことがないのでわからないがテーマはテーマらしい。
※CakePHPにもテーマ機能などがある。
スポンサードリンク
.htaccessの変更
変更は難しくなく、RewriteBaseにCakePHPを設置したディレクトリを記述すれば良い。ここでは/にあったCakePHPを/cakephpに移動した例を記述する。
CakePHP/.htaccess
RewriteEngine on RewriteBase /cakephp/ # cakephp default RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]
CakePHP/app/.htaccess
RewriteEngine on RewriteBase /cakephp/app/ RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L]
CakePHP/webroot/.htaccess
RewriteEngine On RewriteBase /cakephp/app/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
※サイトルートに何も置かず、WordPressは/wp/に置いている。トップページにアクセスがあった場合は/wp/に転送する。将来、他にトップにしたものがあったとしてもWordPressへリンクされたアドレスは不変だ。以下はその例。必要があればCakePHPのwebrootからも/wp/などに転送するように仕掛けておくと良いかもしれない。お好みで。
.htaccess 例
RewriteEngine on RewriteRule ^$ wp/ [L]
参考文献
- テーマ :: ビュー :: CakePHPによる開発 :: マニュアル :: 1.3コレクション :: The Cookbook
- CakePHP template: CakePHP のおいしい食べ方
- CSS-Only, Table-less Forms :: Code Samples :: Jeff Howden :: JeffHowden.com
- CakePHP Viewファイルのテーマ化 | WIDGET-INFO
- cakephpでroot階層以外での.htaccessの設定 | イテルの一日一問
コメント