このブログとは別のWordPressの初期設定を任されました。
特定のカテゴリにパスワードをかけたいということで、プラグインでどうにかなると思ってました。
とりあえずカテゴリページの記事一覧は見えなくしました。
コードの知識が無い僕ができることは試したつもりなので、覚書として記事にメモしておきます。
現状
今の状態はこんな感じです。
- 1カテゴリページ
固定ページでパスワード入力ページを作成した
- 2ログイン後のページ
カテゴリページへのリンクを表示。
これをクリックしてもらう。
- 3カテゴリページ
本当にやりたいのは、パスワードを入力したら記事一覧に飛びたいんです。
“ログイン後のページ”がいらないんです。
プラグインでは、パスワードをかけたカテゴリの記事一覧が見えてしまいます。
記事一覧を見えなくしたかったので、この形になりました。
試したプラグインは2つあります。
試したプラグイン
Access Category Password
カテゴリ内の記事一覧が見えてしまう。
本文は見えないけど記事の概要が設定されていたら見える。
Restrict User Access
WordPressのIDが必要で、登録の手間がかかるし普通にパスワード入力だけにしたい。
自作のプラグイン
思ったものが無いなら作ってしまえ!ということで、ChatGPTで希望通りに機能するプラグインが作れました。
ですが、デザインを維持できなかったので、使うのを諦めました。
コードをコピペした
見た目が崩れたりログインできなくなったりするのが嫌なので、コードをいじるのは避けてました。
ですが、残された手段はコードでどうにかする以外思いつきませんでした。
ということで、まずはパスワードを設定したいカテゴリを非表示にしました。
functions.phpに以下のコードを追加しました。
//トップページから特定のカテゴリの除外
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-ID' );//マイナスをつけてカテゴリIDを除外する
}
}
add_action( 'pre_get_posts', 'exclude_category' );
4行目の「cat’, ‘-ID’」のIDは非表示にしたいカテゴリIDを入力します。
この後にこちらのページを参考にさせていたたき、パスワードフォームを設定しました。
そしてできあがったのが現状になります。
どうにかログイン後のページをなくしたいですが、下手に触りたくありません。
ここばかりに時間をかけてもしょうがないので、今はこのままにしておきます。
ショートコードのところにリンクが貼れなかったので、別の方法で設定しました。
コメント