WordPressダッシュボードのSSL化を、ユーザー単位で有効/無効に設定する方法を見つけたのでメモ。大したネタではありませんが。。
ダッシュボードやログインフォームにSSLを適用する時によくやるのはwp-config.phpに下記のように定数をセットする方法ですが、これだとすべてのユーザーに問答無用でSSLが適用されてしまいます。
または
この前者に相当する設定を、ユーザー毎にそれぞれのプロフィール画面からチェックボックスで行えるようにします。やることはいたってシンプル。お使いのテーマのfunctions.phpを開き、最後の行あたりに下記を加えます。
以上で、各ユーザーのプロフィール画面「ツールバー」の次に「https を使用する」という項目が現れます。チェックを入れて更新すると即座にhttps付きのURLにリダイレクトされます。その後、そのユーザーがダッシュボード内にアクセスする時と、ログインフォームを送信する時は常にSSLがオンになります。
設定はユーザー単位で可能。phpMyAdminでDBを見てみると、usermetaテーブルに各ユーザー毎に「use_ssl」という項目があり、SSLを使用する設定にしたユーザーは「1」、そうでないユーザーは「0」になっています。
この機能を実現するuse_ssl_preferenceという関数はwp-admin/user-edit.phpの69〜76行目にあります。「personal_optionsというアクションにフックすると使えるようになります」とコメントが書かれていますね。version 2.7から実装されていたようです。あと、WordPress.comでは元々このオプションは有効になっているようですね?
さて、久しぶりのブログ更新でした。前回の記事がWordBeach(WordBench名古屋)の記事なので、何とあの驚異的な盛り上がりを見せた「WordCamp Tokyo 2011」すらスルーしてしまったようです。。。また地味なネタを見つけたら書きますね。
【追記】
そうそう、最近「FE.labs」というブログを気付いた時に更新しています。私だけでなくて、当社の若手プログラマ等も書いています。今後はこのブログも私だけでなくて当社スタッフにも書いてもらい、Web関連の技術ブログはこの「WPCMS.jp」「FE.labs」の2本でやっていこうと考えています。お暇な時にでもどうぞ。
