やりたい事
・wordpressで作成している、特定のカテゴリ(仮にAAA)にのみパスワードを設けたい。
・AAAのカテゴリーページに注意書きを載せたい。
・アクセスする毎にパスワードを要求するようにしたい。
現在はwebで調べたコードを元に以下のように記述しています。
function.php
PHP
1function basic_auth($auth_list,$realm="Restricted Area",$failed_text="認証に失敗しました"){ 2if (isset($_SERVER['PHP_AUTH_USER']) and isset($auth_list[$_SERVER['PHP_AUTH_USER']])){ 3if ($auth_list[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']){ 4return $_SERVER['PHP_AUTH_USER']; 5} 6} 7header('WWW-Authenticate: Basic realm="'.$realm.'"'); 8header('HTTP/1.0 401 Unauthorized'); 9header('Content-type: text/html; charset='.mb_internal_encoding()); 10die($failed_text); 11} 12function password_form_cookie() { 13require_once ABSPATH . 'wp-includes/class-phpass.php'; 14$hasher = new PasswordHash( 8, true ); 15setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), time() + MINUTE_IN_SECONDS, COOKIEPATH ); 16wp_safe_redirect( wp_get_referer() ); 17exit(); 18} 19add_action( 'login_form_postpass', 'password_form_cookie' );
header.php
PHP
1<?php 2if(!is_home()): 3 if(is_post_type_archive('AAA')) : 4 $userArray = array("testid" => "testpass" 5 ); 6 basic_auth($userArray); 7 endif; 8endif; 9?> 10コード
問題点
・カテゴリ「AAA」ページに遷移した際、1度はパスワード入力を求められましたが、その後はパスワードを求められない。
・カテゴリ「AAA」ページのリンクを押した際、
ブラウザに表示されている画面は遷移前の画面でポップアップでユーザー名とパスワードを求められる。
※正しく入力するとカテゴリ「AAA」ページが表示される
プラグインを使用する方法でもその他でも構いません。
以下の実装が出来る方法を探しております。
①カテゴリ「AAA」のリンクを押下した時、カテゴリ「AAA」のページを表示。
②カテゴリ「AAA」のページに誰でも見られる注意書きを表示。
③カテゴリ「AAA」の内容はパスワードで保護されている。
④正しいパスワードを入力した場合のみ「カテゴリAAA」の内容が表示される。
※idはあっても無くても構いません。
⑤一定時間経過、またはブラウザを閉じた後に再度カテゴリ「AAA」のページに遷移しようとした際にパスワードを要求する。
どうぞお知恵をお貸しください。
回答1件
あなたの回答
tips
プレビュー