この記事は、作成日から14年経過しています。内容が古い可能性があります。またこの記事は、大幅なデザイン変更前に書かれたものですので、レイアウトが崩れている可能性があります。ご了承ください。
今回の記事はやや技術的な話です。WordPressというブログ構築システムにおいて、管理画面を共用SSLの環境下で動かす方法です。100%合っているという自信はありませんが、私の環境では問題なく動作しています。もし、「違う!」というところがあれば、コメントとして書き込んでいただければ幸いです。なお、プラグインを開発する力はないので、開発できる方はぜひお願いいたします。
【動作確認環境】
【共用SSL使用時に現れる問題点】
- ログイン・パスワードが合っているはずなのに、管理画面に移行しない
- 管理画面で何らかのボタンをクリックしたときに、「ページが表示されません」状態になる
- AdminSSLというプラグインを使えば共用SSL下でも問題なかったが、最新版のWordPressでは不具合がでる
【解決のポイント】
- WordPress のアドレスとサイトのアドレスをwp-config.php上で指定する
- FORMタグ内で$_SERVER['REQUEST_URI']を用いてページの遷移が決められているところに修正を加える
【解決方法】
以下、URLをhttp://www.corearata.com/、共用SSL下では、https://ssl.dummy.du/corearata.com/として記述します。
(手順1)
wp-config.php内の認証用ユニークキーの下あたりに下記の2行を追加する。なお、最後にURLの最後にバックスラッシュは書かない。
define('WP_SITEURL', 'https://ssl.dummy.du/corearata.com');
define('WP_HOME', 'http://www.corearata.com’);
(手順2)
wp-admin/plugins.php内の、<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">:273行目を下記のように修正する。
<form method="post" action="/corearata.com<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
(手順3)
wp-includes/functions.php内の、 $referer_field = '<input type="hidden" name="_wp_http_referer" value="'. $ref . '" />';:1942行目を下記のように修正する。
$referer_field = '<input type="hidden" name="_wp_http_referer" value="/corearata.com'. $ref . '" />';
以上です。また、一部のプラグインをインストールした際、そのプラグインの設定画面において、共用SSL環境下独特のエラーが生じる場合があります。ほとんどは、解決のポイント2に挙げたところで解決できます。
また、ContactForm7で問い合わせフォームを共用SSL化する方法は、猪突迷走さんの記事をご参照ください。
コメント
コメント一覧 (2件)
こんにちは。
こちらのサイト大変参考になります。
WordPressを共用SSL環境下で動かす方法を参考に設定してみました。
大体はうまく起動しているのですが
ウィジェットのメタ情報やis_user_logged_inのユーザー判定がされていませんでした。
ログインしても常に『ログイン』が表示されているだけです。
何か解決方法はあるのでしょうか?
宜しくお願いします。
ご覧いただきありがとうございます。あくまで、継ぎ接ぎなので、なかなかうまく動作しない部分もあると思います。
WordPressHTTPS というプラグインを利用してみてください。
http://wordpress.org/extend/plugins/wordpress-https/
ひょっとすると改善されるかもしれません。