サポート » 使い方全般 » 特定のカテゴリから任意の記事を除外したいです。

  • 解決済 maruko1st

    (@maruko1st)


    お世話になっています。ちんぷんかんぷんです、お力添えをお願いします。

    ブログ的なサイトにて「特定のカテゴリページでだけ、特定の記事を除外したい」のです。
    まず、現在のカテゴリページの主なソースは下記となっています。

    ——-

    <?php // 投稿一覧出力ループ ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php // 記事抜粋出力 ?>
    <div class=”write_box clearfix”>
    <h2><?php the_permalink(); ?><?php the_title(); ?></h2>

    <div class=”inner_text”>
    <div class=”category_th”>
    <?php the_permalink(); ?><?php the_post_thumbnail(‘medium’) ;?>
    </div><!– /.category_th end –>
    <p class=”arc_text”><?php the_excerpt(); ?></p>

    <p class=”page_click”><?php the_permalink(); ?>つづきを読んでみる  <i class=”fa fa-forward”></i></p>
    </div><!– /.inner_text end –>
    </div><!– /.write_box end –>
    <?php endwhile; ?>
    <?php // ページリンク出力 ?>

    <div class=”pager”>
    <div class=”pager_inner clearfix”>
    <div class=”prev”><?php previous_posts_link(‘  前のページへ’);?></div>
    <div class=”next”><?php next_posts_link(‘次のページへ  ‘);?></div>
    </div>
    </div>

    <?php else: ?>
    <p>まだ記事がありません。</p>
    <?php endif; ?>

    ——-

    例えば、「review」というカテゴリが表示された時だけ、投稿ID100,200,300の三記事を除外したいということなのですが、この投稿ID100,200,300の三記事は、別のタグページでは表示されてほしいのです。

    なので、どのカテゴリ&アーカイブページでも、ではなくあくまで「特定のカテゴリページ(review)のときだけ」その三記事を除外したいです。

    知識が浅くて申し訳ありませんが、もしご回答いただける方がいましたらよろしくお願いいたします。

    • このトピックはmaruko1stが4年、 11ヶ月前に変更しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • CG

    (@du-bist-der-lenz)

    その投稿ID100,200,300の三記事は、例えば、「review」というカテゴリに属している記事だが、カテゴリ・アーカイヴ、タグ・アーカイヴに一覧させない。ということでしょうか。

    こんにちは

    「特定のカテゴリページ(review)のときだけ」その三記事を除外したいです。

    カテゴリページだけということでいいのでは(?)
    とりあえず、カテゴリページだけとすると、下記ページのサンプルコードが参考になると思います。

    Codex「プラグイン API/アクションフック一覧/pre get posts」ページの「ホームページから ID で単一投稿を除外」セッション
    https://wpdocs.osdn.jp/プラグイン_API/アクションフック一覧/pre_get_posts#.E3.83.9B.E3.83.BC.E3.83.A0.E3.83.9A.E3.83.BC.E3.82.B8.E3.81.8B.E3.82.89_ID_.E3.81.A7.E5.8D.98.E4.B8.80.E6.8A.95.E7.A8.BF.E3.82.92.E9.99.A4.E5.A4.96

    Codex「条件分岐タグ」ページの「カテゴリーページ」セッション
    https://wpdocs.osdn.jp/条件分岐タグ#.E3.82.AB.E3.83.86.E3.82.B4.E3.83.AA.E3.83.BC.E3.83.9A.E3.83.BC.E3.82.B8

    例)

    function my_pre_get_posts_filter_review( $query ) {
    	if ( is_admin() || ! $query->is_main_query() ){
    		return;
    	}
    	if ( $query->is_category( 'review' ) ) {
    		$query->set( 'post__not_in', array( 100, 200, 300 ) );
    		return;
    	}
    }
    add_action( 'pre_get_posts', 'my_pre_get_posts_filter_review' );
    • この返信は4年、 11ヶ月前にishitakaが編集しました。理由: 誤記
    • この返信は4年、 11ヶ月前にishitakaが編集しました。
    トピック投稿者 maruko1st

    (@maruko1st)

    なぜかPCからフォーラムに入ることができなくなってしまったので、スマートフォンから失礼します。

    —-CGさん
    説明が拙くて申し訳ありません。記事ID100,200,300はカテゴリreviewに属しているのですが、タグアーカイブでは表示して、カテゴリアーカイブでは表示させたくない。ということでした。説明不足でごめんなさいっ!汗

    —-ishitakaさん
    そうですね、特定のカテゴリとかではなく、ただカテゴリで良かったですw気付きませんでした。。悲
    そして、ishitakaさんに記述して頂いたソースでまるっとイケました!!!正直まだ半分くらいしか解読できていません…ひとつひとつ調べて仕組みを解いていかせて頂いきます。

    完全に行き詰まっていたので、本当に助かりました。
    ご回答に時間を割いて頂き、ほんっとうにありがとうございました!

    • この返信は4年、 11ヶ月前にmaruko1stが編集しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「特定のカテゴリから任意の記事を除外したいです。」には新たに返信することはできません。