php WordPress

静的htmlでWordPressのphpを実行する:サクラのレンタルサーバ編

WordPressで作ったサイトのトップページをindex.hmtlの静的ファイルにしたい時の覚え書き。
既存のサイトで、新着情報等、一部だけをWP化したい時の手順です。

たとえば、
・新着情報だけしか更新しないから、ここだけWordPress化したい。
・新着5件をトップページに表示したいけど、それ以外の部分は静的htmlのまま管理したい。
・従ってトップページはWordPressを介さずにFTPで直接編集したいから、テーマファイルのphpにせず、htmlファイルのままにしておきたい。

みたいに、WordPressの導入範囲を最小限にとどめたい時のケースになります。

サーバによって作業が変わる様子です。
今回はサクラのレンタルサーバを使った時のケースを書きました。

あと、今回はWordPressは公開ディレクトリ直下にそのまま置いてあるのではなく、
「wp」等、ディレクトリを作ってその中にインストールしている構成を前提としています。

こんな感じです。

index.hmtl
 wp
 |- wp-admin
 |- wp-content
 |- wp-includes

▼PHPファイルをwww直下にコピーする

まず自分の使ってるphpのバージョンを確認して、サーバからローカルにDL。
私の場合は5.2.17でした。

Transmit(ftpソフト)で下記の領域にアクセスして、

/usr/local/php/5.2.17/bin/php-cgi

php-cgiをダブルクリックするとインストールできる。
バイナリモードじゃないといけないのだそうですが、Transmitは特に何も設定しなくても大丈夫でした。

ローカルにDLできたら、ファイルを

php.cgi

にリネーム。サーバのwww直下にアップします。
パーミッションは705にしました。

最後に、www直下にある.htaccessに下記を記載します。

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

ここまでの作業は下記を参考にさせてもらいました!
http://d.hatena.ne.jp/tazkittyz/20120306/1331042086

▼WordPress側でのファイル修正

.htaccessを修正。

RewriteRule . /index.php [L]

となっているのを

RewriteRule . /WordPressをインストールしてるディレクトリ/index.php [L]

に変更。

WordPressのindex.phpをindex.htmlに拡張子を変更して、1行目に下記を記載する

<?php require_once './WordPressをインストールしてるディレクトリ/wp-load.php'; ?>

ここでの作業は下記を参考にさせてもらいました!
http://www.webopixel.net/wordpress/206.html

あとは、ファイル内にWordPressのテンプレートに書くようなPHPを書いたら実行されるようになる。

追記:
まがりんさん(@jim0912)アドバイスをいただいた部分を追加しました。

wp-blog-header.php だと、不要な部分まで実行されてしまうので、wp-load.php を require_once する方が良いですね。

wp-blog-header.php ですと、記事の抽出処理まで行われることになります。これを活かすかどうかによりますが、この場合は、?p=nnnn などのパラメーターを付けられたりすると意図しない動作になる可能性があります。
WordPress の機能のみ使いたい場合は、wp-load.php を読み込むと、WordPress関数およびプラグイン、テーマのfunctions.php などが使える初期化までで止まります。この場合は、htmlファイルで query_posts にて、記事の取得を自分で行う必要があります。

WordPressの実行フローを視覚化してみる


by. 大曲仁さん

▼既存htmlファイルの修正

xmlの宣言が書かれていると、syntaxエラーになってしまうため

<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>

のように書き換える。

以上。

Previous Post Next Post

You may also like

Leave a comment

Leave a Reply