サポート » 使い方全般 » カテゴリーページで特定の記事のみ除外したい

  • 解決済 kazuyoung

    (@kazuyoung)


    カテゴリーページで特定の記事のみ非表示にして一覧を出力したいのですが、どなたかご教授ください。

    なんだかよくわからず下のコードをとりあえず書いてみたのですが、、。

    <?php $query = new WP_Query( array( 'post__not_in' => array( 96 ) ) ); ?>
    <?php
    if (have_posts()) :
    	while (have_posts()) :
    
    		the_post();
    		get_template_part('content-archive');
    	endwhile;
    
    	//pager
    	if (function_exists("pagination")) {
    		pagination($additional_loop->max_num_pages);
    	}
    endif;
    ?>

    よろしくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • KUCKLU

    (@kuck1u)

    以下を使用中のテーマのfunctions.phpに記載すれば
    多分いけるのじゃないでしょうか。
    ※未テストです。

    function my_change_mainquery( $query ) {
    	// 管理画面、またはメインクエリーではない場合何もしない
    	if ( is_admin() || ! $query->is_main_query() )
    		return;
    
    	// アーカイブページの場合は以下を処理
    	if ( $query->is_archive() ) {
    		// Post IDが1、2、10の投稿を除外する
    		$post_not_in = array( 1, 2, 10 );
    		$query->set( 'post__not_in', $post_not_in );
    	}
    }
    add_action( 'pre_get_posts', 'my_change_mainquery' );

    または

    function my_change_mainquery( $query ) {
    	// 管理画面、またはメインクエリーではない場合何もしない
    	if ( is_admin() || ! $query->is_main_query() )
    		return;
    
    	// カテゴリーアーカイブページの場合は以下を処理
    	if ( $query->is_category() ) {
    		// Post IDが1、2、10の投稿を除外する
    		$post_not_in = array( 1, 2, 10 );
    		$query->set( 'post__not_in', $post_not_in );
    	}
    }
    add_action( 'pre_get_posts', 'my_change_mainquery' );
    トピック投稿者 kazuyoung

    (@kazuyoung)

    早速のご返答有難うございます。

    申し訳ございません。
    function.phpに貼り付けて記事IDを記載したところ、サイトが真っ白になってしまいました・・・。

    KUCKLU

    (@kuck1u)

    試しに、私のローカルでテストしてみたのですが
    大丈夫でそうですよ。

    トピック投稿者 kazuyoung

    (@kazuyoung)

    なるほど、そうなんですね。
    ということは、function.phpにいろいろと他に記述しているコードと干渉してる可能性があるのでしょうか。

    KUCKLU

    (@kuck1u)

    それは無いと思います…同じ関数名が無い限り。
    コピペミスとか…ではないですよね。

    トピック投稿者 kazuyoung

    (@kazuyoung)

    できました!ご指摘の通りコピペミスでした…。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カテゴリーページで特定の記事のみ除外したい」には新たに返信することはできません。