こんにちは
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。
お返事ありがとうございます。
とんちんかんなことを尋ねていたら申し訳ありませんが、タグIDはどこで指定すればいいのでしょうか。
具体的には、タグID319の記事一覧から投稿ID9397と9404を除外したいのですが。
CG
(@du-bist-der-lenz)
タグアーカイヴすべてから、投稿ID9397と9404を除外したいのでしょうか
タグアーカイヴすべてというのは、どのタグをクリックして表示された記事一覧ページでも、一切表示されなくなる、ということですか?
できれば、特定のタグ(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 ) ) ) {
できました!
ishitakaさん、CGさん、どうもありがとうございました。
お世話になりました。