WordPressで特定のページのみにパスワードを設定する方法

この記事はWordPressで任意のページにパスワードを設定して表示を制限する方法を4種類紹介しています。

ページ編集でロックする

投稿ページや固定ページの場合は画像のように公開する項目からパスワードを設定できます。

最も簡単な方法ですが、デメリットもあります。

ページエディタで入力した内容しか制限できない事です。

// 投稿内容を表示
<?php the_content(); ?>

自作テンプレートで作成した場合は、上記の関数でエディタ内容を表示させますが、この関数の中身しか制限できないのです。

つまり、自ら投稿ページや固定ページのファイルをカスタムで編集している場合は、制限できない事です。

サーバーでアクセス制限する

エックスサーバーですが

アクセス制限でパスワードをかけることが出来ますが、これでは特定のページにかけることは出来ません。ウェブサイト全体にかけることは出来ます。

プラグインでロックする

Password Protected

このプラグインで設定できますが、無料ではサイト全体にしかロックできません。

特定のページに関しては有料になります。

プログラムコードでロックする

下記のコードをフロントエンドで設定する

<?php
/*
Template Name: 自作テンプレート
*/

get_header();

// パスワードを設定
$correct_password = 'your_password';

// ユーザーが送信したパスワードを取得
$user_password = isset($_POST['password']) ? $_POST['password'] : '';

if ($user_password === $correct_password) {
    // パスワードが正しい場合、ページを表示
    
} else {
    // パスワードが間違っている場合、パスワード入力フォームを表示
    ?>
    <form action="" method="post">
        <label for="password">パスワードを入力してください:</label>
        <input type="password" id="password" name="password">
        <input type="submit" value="送信">
    </form>
    <?php
}

しかし、このコードは非常に簡素なコーディングになるので、機密性の高いページには不適切です。

以上で4種類の方法を紹介しましたが、どれも簡単な方法ですので、自身の方法に適した制限を見つけましょう!