パスワード保護関連

ワードプレスのメモ

たくさんありますが、とりあえずよく使いそうなものをメモ。

サイト全体にパスワードをかける

プラグイン:Password Protected

※インストールすると「パスワード保護」という名前で表示されます。

任意のパスワードで保護できます。

もちろんログインしていれば無効。他にもいくつかオプションあり。

プラグイン:WP BASIC Auth

ベーシック認証みたいな感じで、ユーザー名、パスワードで保護されます。

※使用されるのはワードプレスのユーザー情報です。

中身がベーシック認証と同じかは不明。

パスワード管理

プラグイン:Replace Protected Password

全部の記事が同じパスワードだった場合、一括でパスワード変更ができます。

複数あれば、同じパスワードごとに一括変更できます。

要はグループ管理できるということ。

特定ページなどにベーシック認証をかける

if( is_page( 'page-XXX' ) ){
	$userArray = array(
		'admin'	=> '1234'
	);
	basic_auth( $userArray );
}

この場合、ユーザー名「admin」、パスワード「1234」となります。

get_post_type() === ‘secret’、is_single()など条件はなんでも。

header.phpの先頭に書いておきます。

条件分岐

パスワードを必要としているならば

if( post_password_required() ){
}

よくアイキャッチの出力に書いてあるヤツ。

パスワードの入力後は、クッキーに残っている限り「false」が返ってきます。

パスワード設定をしてあるならば

if( !empty( $post->post_password ) ){
}

ログイン状態、クッキー状態関係なし。

前者は現在の閲覧可否、後者は記事の設定状態で分岐しますので、使いどころによってどちらかを。

ワードプレスにログイン状態ならば

if( is_user_logged_in() ){
}

the_content()以外

パスワード保護されるのは本文「the_content()」なので、カスタムフィールドなどの内容は表示されちゃいます。

「ヘッダー、フッター、サイドバーは出すけど、本文+αはパスワード保護したい」という場合は、面倒ですが上記条件分岐等で出力部分を保護設定をする必要があります。

「本文やカスタムフィールドは保護するが、要約は保護しない」等々。

「保護中」のメッセージを変更

関数ファイルに書いておきます。

function edit_protected_word (){
	return '会員限定記事:%s';
}
add_filter( 'protected_title_format', 'edit_protected_word' );

「保護中」だとピンとこないときに。

クイック編集にパスワード設定を加える

参考記事のコピペです。素晴らしい。

function nendebcom_post_password_bulk_quickmenu( $column_name, $post_type ) {
 
    if( $column_name == 'postpass' ){
 		if( $post_type == 'post' ){
        ?>
        <fieldset class="inline-edit-col-right">
            <label class="inline-edit-<?php echo $column_name; ?>">
            <span class="title">パスワード</span>
            <span class="input-text-wrap">
            <input class="inline-edit-password-input" name="post_password" value="" type="text">
            </span>
            </label>
        </fieldset>
        <style type="text/css">th.column-postpass,td.column-postpass{display:none;}</style>
        <?php
		}
    }
}
add_action( 'bulk_edit_custom_box', 'nendebcom_post_password_bulk_quickmenu', 10, 2 );
// ダミーカラム追加
function rachel_carden_managing_my_posts_columns( $columns, $post_type ) {
    if ( $post_type == 'post' )
        $columns[ 'postpass' ] = '';
    return $columns;
}
add_filter( 'manage_posts_columns', 'rachel_carden_managing_my_posts_columns', 10, 2 );

一括でパスワード設定を解除、というのはできないみたいですが、一括で非公開 ⇒ 一括で公開、とすれば、パスワード設定をクリアできます。

 

引用元 –

その他

パスワード保護とは違いますが、、、

右クリック抑制 – プラグイン:WP-Copyright-Protection

ソースを見る方法はいくらでもあると思うので、「勝手にコピペすんなよ」という意思表示程度に。

メンテナンス中にする – プラグイン:WP Maintenance Mode

全部隠しておきたい時に。

ログイン状態では解除されるので、これだけで良いという場合もあるかも。