サポート » 使い方全般 » タグページの記事一覧から特定の記事を除外したい

  • 解決済 view1102

    (@view1102)


    こんにちは。

    タグページに表示される記事一覧の中から、任意の記事をその一覧中に表示させないようにする方法はありますでしょうか?

    どうぞよろしくお願いします。

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

    pre_get_posts フックを使用するといいかと思います。

    例:

    function pre_get_posts_for_tag_page( $query ) {
    	if ( is_admin() || ! $query->is_main_query() ) {
    		return;
    	}
    	if ( $query->is_tag() ) {
    		$query->set( 'post__not_in', array( 1,2,3 ) );
    		return;
    	}
    }
    add_action( 'pre_get_posts', 'pre_get_posts_for_tag_page' );

    ※ 1,2,3 が除外する投稿 ID。

    トピック投稿者 view1102

    (@view1102)

    お返事ありがとうございます。

    とんちんかんなことを尋ねていたら申し訳ありませんが、タグIDはどこで指定すればいいのでしょうか。

    具体的には、タグID319の記事一覧から投稿ID9397と9404を除外したいのですが。

    CG

    (@du-bist-der-lenz)

    タグアーカイヴすべてから、投稿ID9397と9404を除外したいのでしょうか

    トピック投稿者 view1102

    (@view1102)

    タグアーカイヴすべてというのは、どのタグをクリックして表示された記事一覧ページでも、一切表示されなくなる、ということですか?

    できれば、特定のタグ(ID319)をクリックして表示される投稿一覧ページの中から投稿ID9397と9404が表示されなくなるようにしたいのです。

    他のタグ(たとえばID320)をクリックした場合はこれらの投稿が表示されたままにしておきたいのですが。

    タグ ID が 319 のタグアーカイブページで、投稿 ID 9397 と 9404 を除外する場合の例です。

    function pre_get_posts_for_tag_page( $query ) {
    	if ( is_admin() || ! $query->is_main_query() ) {
    		return;
    	}
    	if ( $query->is_tag( 319 ) ) {
    		$query->set( 'post__not_in', array( 9397,9404 ) );
    		return;
    	}
    }
    add_action( 'pre_get_posts', 'pre_get_posts_for_tag_page' );
    CG

    (@du-bist-der-lenz)

    条件分岐を、整理して希望するようにトライしましょう。

    複数のタグページを指定する場合は、下記のようにしてください。

    if ( $query->is_tag( array( 319, 320 ) ) ) {

    トピック投稿者 view1102

    (@view1102)

    できました!
    ishitakaさん、CGさん、どうもありがとうございました。
    お世話になりました。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「タグページの記事一覧から特定の記事を除外したい」には新たに返信することはできません。