Ktai Style 作者です。
携帯電話からの閲覧も可能にさせる為に、「Ktai Style 1.70」を利用させて頂いているのですが、ページ遷移がうまくいきません。
現在の Ktai Style は、ログインしての閲覧には対応していません。つまり、ログインユーザーのみ閲覧させる制限をかけることはできません。
クッキーに対応した端末 (ドコモ以外) であれば、クッキー認証によるログインは一応できますが、予想しない動作が考えられます。
auth_redirectの使い方が間違えているのでしょうか?
強いて言うとそうなります。
ありがとうございます。
現在の Ktai Style は、ログインしての閲覧には対応していません。つまり、ログインユーザーのみ閲覧させる制限をかけることはできません。
どうにかして携帯電話でもPCと同じように閲覧制限をかけたいのですが、何か方法はありませんでしょうか?
出来ればプラグインで簡単に実現したいです。
どうにかして携帯電話でもPCと同じように閲覧制限をかけたいのですが、何か方法はありませんでしょうか?
これには、携帯電話そのものの制約を検討しなければなりません。すでに書いた通り、ドコモ携帯ではクッキーが使えないため、WordPress 標準のログイン機構が使えません。Ktai Style の持つログイン機構も、単なる閲覧時には使えません。
したがって、ドコモ携帯でも使える認証システムとしては Basic 認証というものに限られてきます。これは、.htaccess などの設定で、ID とパスワードを記載したファイルを指定して、その ID, パスワードで認証するというものです。
「Ktai StyleとWordpress Passwordの互換性」で、具体的な手法を説明していますので、ぜひ参照してください。
lilyfan様 ありがとうございます。
Basic認証を利用して閲覧制限に挑戦してみたいと思います。
「Ktai StyleとWordpress Passwordの互換性」参考にさせていただきました。
そして、またつまずきました。。。
複数のID, パスワードを設定できた方がいいので
最下部にあった、
<?php
global $wpja_site_pass;
$wpja_site_pass = array(
'user_1' => 'pass_1',
'user_2' => 'pass_2',
);
function wpja_force_basic_auth() {
if (! defined('WP_USE_THEMES')) {
return;
}
global $wpja_site_pass;
if (isset($_SERVER['PHP_AUTH_USER']) && array_key_exists($_SERVER['PHP_AUTH_USER'], $wpja_site_pass) && strcmp($wpja_site_pass[$_SERVER['PHP_AUTH_USER']], $_SERVER['PHP_AUTH_PW']) === 0) {
return;
} else {
header('WWW-Authenticate: Basic realm="Please Enter Site Password"');
header('HTTP/1.0 401 Unauthorized');
if (! isset($_SERVER['PHP_AUTH_USER'])) {
echo "Authorization Required";
} else {
echo "Bad Password";
}
exit;
}
}
add_action('init', 'wpja_force_basic_auth');
?>
をmy-hacks.phpとして保存し、インストールディレクトリにアップロードし、管理画面「その他の設定」から「レガシーな my-hacks.php ファイルを使用」にチェックを入れて試してみました。
ユーザー名とパスワードが要求されるメッセージが出て来て、ユーザー名に「user_1」、パスワードに「pass_1」を入力しても、何度も同じようにユーザー名・パスワードの入力が要求されてしまい、進むことが出来ませんでした。
wp-blog-header.phpに追記していた
if (!is_user_logged_in()){
auth_redirect();
}
などもすべて削除したのですが状況は変わらず。
ベージック認証でもやりたかったことが実現出来そうなので、なんとかクリアしたいところです。
素人相手で申し訳ございませんが、ご教授頂けませんでしょうか。
ユーザー名とパスワードが要求されるメッセージが出て来て、ユーザー名に「user_1」、パスワードに「pass_1」を入力しても、何度も同じようにユーザー名・パスワードの入力が要求されてしまい、進むことが出来ませんでした
おそらく実際には user_1 や pass_1 とは違う文字列なのだと思いますが、その文字列に問題がありそうです。もういちどよーく見直してみてください。
特に、パスワードに記号を使っている場合は、うまく書かないと正しく通りません。シングルクォートの中なので、バックスラッシュ (円記号) やシングルクォートそのもの以外ならば、どんな記号が来ても通常は問題ないはずですが……。パスワード文字列をダブルクォートで囲ってしまったならば、ドル記号 ($) とかを入れるとおかしいことになります。