サポート » 使い方全般 » 閲覧者が任意で特定のカテゴリを非表示にする方法

  • タイトル通りになるのですが

    【閲覧者】がトップページに表示している記事一覧から
    特定のカテゴリや特定の文字が入ってる記事を
    任意で表示・非表示にできる方法はありますか?

    閲覧者自ら特定のカテゴリを選択したりすればできますがそうではなくて
    トップページとかサイドバーに設定箇所があり
    特定のカテゴリ以外を全表示するような機能です。

    (カテゴリ A.B.C.Dがあるとして、Aは興味ないし見たくないから非表示にして
    は全部表示など。閲覧者によって表示したくないカテゴリはもちろん違いますので
    閲覧者が自由に選べるようにできる方法です)

    プラグインでもいいのですがなにかご存知の方いらっしゃいましたら
    お知恵をお貸し頂ければと思います。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • moon1008さん、こんにちは。

    ピンポイントの解決方法があるわけではありませんが、いくつかヒントになればと思います。

    閲覧者が自由に選べるようにできる方法

    これを実現するには、まず閲覧者が「誰か」を判断できる必要があります。個人を特定するのではなくて、今見ている人が以前見ていた人と同じであるのか、違うのか等の判断が必要だということです。
    上記を実現するにはいくつか方法がありますが、ひとつはログインさせてユーザーを認証する方法、もうひとつは cookie を食べさせて同じブラウザを認識する方法です。

    具体的にいうと、カテゴリなどを選択させる必要があるため、例えばチェックボックス等の入力欄を用意して、そこに入力した設定を覚えさせる必要があります。そうでなければサイトに訪れるたびに非表示にしたいカテゴリや言葉をチェックする必要があるため非効率です。

    不要なカテゴリを非表示にする案ですが、これもいくつか考えられます。
    おそらく最も簡単な方法は、カテゴリにそれぞれ class を付与しておいて、チェックボックスが ON になった際に display: none; を指定する方法です。
    よく CSS のみで実装するアコーディオンなどで隠れたチェックボックスが ON になるとアコーディオンが開くなどの仕組みがありますが、あれの応用ですね。

    もちろん JavaScript を使用しても同様のことが可能かと思われます。WordPress の場合は安易なのは jQuery での実装でしょうか。この場合も上記と同様に class 指定を行っていた方が処理が行いやすいでしょう。

    閲覧者自ら特定のカテゴリを選択したりすればできますが

    これは単純にカテゴリーページのことを言っているのかもしれませんが、これも応用で可能だと思います。ただし、特定のカテゴリーが非表示のテンプレートを作るなどは非効率なので、チェックボックスが ON のカテゴリーをループで除外する指定を動的に組み込む必要があると思われます。
    $query = new WP_Query( 'cat=-3,-8' );
    詳しくは Codex を調べてみてください。

    ご参考になれば。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「閲覧者が任意で特定のカテゴリを非表示にする方法」には新たに返信することはできません。