Simplicityの特徴 › フォーラム › Simplicityについての質問 › トップページの新着記事一覧から特定のカテゴリーを除外して表示させる場合
- このトピックには7件の返信、1人の参加者があり、最後に
ホワイトにより9年、 8ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年7月27日 4:12 AM #43925
ホワイト
ゲストこんばんは。
特定のカテゴリーを除外して表示させる場合を調べてみたのですが
query_posts()を使って除外したいカテゴリーを指定するとわかったのですがどのファイルに記述したらよいのでしょうか?初心者で申し訳ないです。 -
2016年7月27日 1:56 PM #43932
Hidekichi
ゲストquery_posts()ではなくて、pre_get_postsで今時はやります。
参考: プラグイン API/アクションフック一覧/pre get posts
例えば上記ページの中に「メインページから特定のカテゴリーを除外」というのがありますが、これらを利用したり、あるいは応用して条件を追加したりすることで特定のカテゴリーを除外することができます。
子テーマfunctions.phpに追記します。
モバイルの場合は、親テーマに上記フックを利用されている箇所があり、場合によってはそれを解除する必要があります。 -
2016年7月27日 7:44 PM #43937
ホワイト
ゲストありがとうございます。
早速やってみたのですが上手くいきません。
$query->set( ‘cat’, ‘-48’ );の部分にカテゴリIDを入れるといいんですよね?
ならないってことは何か他に問題があるということですか? -
2016年7月27日 9:16 PM #43940
Hidekichi
ゲスト> $query->set( ‘cat’, ‘-48’ );の部分にカテゴリIDを入れるといいんですよね?
通常はそうです。が、どのようなスクリプトで
$query->set( 'cat', '-48' );を書かれたのか、また想定されているカテゴリーを除外するトップページの指定をどのように書かれたか等をここに貼り付けてみて下さい。また貼り付けたコードは範囲選択して、codeボタンでハイライト表示して下さい。
wordpressでは、Query Monitorと言うプラグインがありまして、これを利用するとどのようなフックであったりデータが読み込まれているかを確認することができます。これらを一時的に利用して、指定したフックが動作しているか等を確認してみて下さい。
またいつものことながら動作は正しく行われているけれどもサーバーが返すのがキャッシュであったりする場合も無きにしも非ずです。なのでキャッシュさせないようにして確認してみることもオススメします。
-
2016年7月27日 11:51 PM #43952
ホワイト
ゲスト丁寧にありがとうございます。
貼りつけたコードは用例にあったそのままです。function exclude_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '-1,-1347' ); } } add_action( 'pre_get_posts', 'exclude_category' );です。これをそのまま子テーマのfunctions.phpに追記しました。
-
2016年7月27日 11:57 PM #43953
ホワイト
ゲスト教えていただいたこのページの用例「メインページから特定のカテゴリーを除外」です。
-
2016年8月6日 3:21 PM #44154
hidekichi
ゲストそのコードで除外できませんでしたか?
カテゴリのIDが間違っているとかはないですかね? -
2016年8月19日 12:07 AM #44475
ホワイト
ゲスト大変失礼しました!
確認不足でした。そして無事にできました。
申し訳ありませんでした。
-
-
投稿者投稿
- トピック「トップページの新着記事一覧から特定のカテゴリーを除外して表示させる場合」には新しい返信をつけることはできません。