サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2018年9月21日 10:29
お世話になっております。
トップに表示されるエントリーカードで、
特定のカテゴリーに属する記事を全て非表示にしたいのですがどのようにすればよろしいでしょうか。
お手数ではございますが、ご教授いただければ幸いです。
2018年9月21日 16:02
親テーマフォルダ内にあるtmpフォルダ内にあるlist.phpを編集すれば行けると思います。
- 親テーマのlist.phpをダウンロード
- PC上でフォルダを新規作成:フォルダ名はtmp
- tmpフォルダ内にlist.phpを入れる
- それを子テーマフォルダ内にアップロード
アップロードしてからファイルマネージャで編集しても良いですし、terapadなどのテキストエディタで編集・上書き保存してから子テーマフォルダ内にアップロードしてもOKです。
Cocoonバージョンが1.2.1位でしたらlist.phpの44・45行目を変更したらいけそうです。
if (have_posts()) : // WordPress ループ
while (have_posts()) : the_post(); // 繰り返し処理開始
この部分を
$query = new WP_Query( 'cat=-3,-8' );
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
カテゴリIDが3と8の投稿除外
と検索したら、書いてました。
もし間違った文字列が入った場合はエラーがでます。その場合、アップロードした『子テーマ』フォルダ内のtmp/list.phpをFTPソフトで削除すれば元に戻ります。
わいひら reacted
2018年9月21日 21:49
こんな感じで、メインクエリをフックする処理を、子テーマのfunctions.phpに追記してもいけるかと思います。
// ===================================================== // メインクエリのカスタマイズ // ===================================================== add_action( 'pre_get_posts', 'custom_pre_get_posts' ); function custom_pre_get_posts($query) { // 管理画面内のクエリまたはサブクエリの場合は何も変更しない。 if (is_admin() || !$query->is_main_query()){ return; } // ブログ投稿インデックスの検索条件を変更する。 if ($query->is_home() && !$query->is_front_page()) { $cat_not_in = array(); $cat_not_in[] = get_category_by_slug('review')->cat_ID; //除外したいカテゴリのスラッグを入力 $cat_not_in[] = get_category_by_slug('voice')->cat_ID; // 除外したいカテゴリのスラッグを入力 $query->set('category__not_in', $cat_not_in); return; } }
参考:ワードプレスでメインクエリの検索条件をカスタマイズする方法
こちらだと、親テーマのアップデートの影響を最小限にできます。
Topic starter
2018年9月22日 15:39
かうたっくさん、わいひらさん
ご回答ありがとうございました。
親アップデートの影響を最小限にということだったので、
まずはわいひらさんからご教授頂いた方法で試しましたが、エントリーカードの表示は変わりませんでした(除外できませんでした。)
次にかうたっくさんの方法でも試したところ、除外はできたのですが、全てのページがエントリーカードが表示されるようになってしまいました。
残念ですが、現状難しそうなので諦めようと思います。
ありがとうございました。
2018年9月22日 19:18
もしかしたら、以下のように書くといけるのかもしれません。
// ===================================================== // メインクエリのカスタマイズ // ===================================================== add_action( 'pre_get_posts', 'custom_pre_get_posts' ); function custom_pre_get_posts($query) { // 管理画面内のクエリまたはサブクエリの場合は何も変更しない。 if (is_admin() || !$query->is_main_query()){ return; } // ブログ投稿インデックスの検索条件を変更する。 $cat_not_in = array(); $cat_not_in[] = get_category_by_slug('review')->cat_ID; //除外したいカテゴリのスラッグを入力 $cat_not_in[] = get_category_by_slug('voice')->cat_ID; // 除外したいカテゴリのスラッグを入力 $query->set('category__not_in', $cat_not_in); return; }
ただ、実際に試してはないので、うまくいくかわからないです。
Topic starter
2018年9月22日 21:33
わいひらさん
ありがとうございました。
早速試してみましたが、確かにトップページのエントリーカードの非表示ができました。
しかしながら、非表示にした記事自体がどのページからも表示されないようになってしましました。(カテゴリーページ、アーカイブなど)
トップページのエントリーカードのみ非表示にできたらと思ったのですが、難しい要望で大変申し訳ございませんでした。
ありがとうございます。
2018年9月22日 22:10
えっ、そこは表示させるんですか。
最初の書き込みにはそこまで詳しく書かれてなかったので。
それだったら、これで良いのかもしれません。
// ===================================================== // メインクエリのカスタマイズ // ===================================================== add_action( 'pre_get_posts', 'custom_pre_get_posts' ); function custom_pre_get_posts($query) { // 管理画面内のクエリまたはサブクエリの場合は何も変更しない。 if (is_admin() || !$query->is_main_query()){ return; } if ($query->is_home()) { // ブログ投稿インデックスの検索条件を変更する。 $cat_not_in = array(); $cat_not_in[] = get_category_by_slug('review')->cat_ID; //除外したいカテゴリのスラッグを入力 $cat_not_in[] = get_category_by_slug('voice')->cat_ID; // 除外したいカテゴリのスラッグを入力 $query->set('category__not_in', $cat_not_in); return; } }
Topic starter
2018年9月23日 07:27
わいひらさん
言葉足らずで大変申し訳ございませんでした。
「トップページのエントリーカードのみ」特定のカテゴリを非表示にできればと思ってお聞きした次第でした。
ご教授頂いた記述で無事に非表示にすることができました。
深く感謝いたします。
ありがとうございました。
わいひら reacted
2018年9月23日 21:57
動作報告ありがとうございます。
逆に、いろいろなケースでのサンプルコードになったので、よかったかも ?
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。