静的サイトの一部にWordPressを部分的に組み込む方法

*知識の浅い方は、ご自身のサーバー環境で一度試してみること強くおすすめします。
「.htaccess」の記述を間違えると、最悪サイトが真っ白になります。

(僕は、投稿ボタンをクリックする度に、.phpファイルがダウンロードされる、謎現象で半日苦しみました。)

1.WordPressのインストール

サイトのURLが、https://〇〇〇.comとした時に、https://〇〇〇.com/wp(任意の名前)の新規で作成した空のディレクトリの中に、WordPressをインストールする。

2.サイトアドレス(URL)を変更する

「設定」→「一般」と進んで、サイトアドレス (URL)を
https://〇〇〇.com/wp→https://〇〇〇.com/に変更する
(*間違えて、WordPress アドレス (URL)を変更しないようにしましょう。)

変更することで、WordPress側のトップページがindex.htmlになります。

3.パーマリンクの設定

パーマリンクを先に変更しておきましょう。
 「投稿名」が無難かもです。

「.htaccess」を変更した後に、パーマリンクを変更すると、「.htaccess」の中身が上書きされてしまうからです。

4.「.htaccess」の設定

RewriteRule . /index.php [L]を
RewriteRule . /wp/index.php [L]に変更します。

変更前

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /www/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

変更後

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /www/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

# END WordPress</code></pre>

5.index.htmlからPHPを実行できるようにする

*xserver以外は、「.htaccess」の書き方が違うかもしれませんので、ググってみてください。

「.htaccess」に追加

AddHandler fcgid-script .html

6.index.htmlからWordPressのタグを使えるようにする

index.htmlの1行目に追加

<?php require './wp/wp-blog-header.php'; ?>

このような感じです。

<?php require './wp/wp-blog-header.php'; ?>
<!DOCTYPE html>
<html lang="ja">
<head>
...

あとは、ループなりWordPressのタグを使って、実際にPHPが動くか動作確認をしましょう。

まとめ

慣れるまでは、バグに苦しむかもしれませんが、慣れれば簡単なので、覚えておくと案件の幅が広がります。

SNSでもご購読できます。

コメントを残す

前の記事

次の記事