ループ内のカスタム分類からすべての投稿を除外する簡単な方法はありますか。私は高値と安値を見てきましたが、SE、SO、Googleのいずれにも真っ直ぐな答えはありません。
私はそれがWPDBクエリを介して行われることができることを知っています、しかしそれはちょうどかなり単純であるべきである何かのためにジャンプする巨大なロープのように思えます。
NOT EXISTS
演算子をタクソノミースラッグの受け渡しと一緒に使用することをお勧めします。これは、カスタムタクソノミーから選択したカテゴリのいずれもループ内に含めないようにクエリに指示します。
分類「フルーツ」(フルーツの種類に関係なく)にあるすべての投稿を除外するために、ここにスニペットがあります:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'fruit',
'operator' => 'NOT EXISTS'
)
)
);
$query = new WP_Query( $args );
これに対する解決策は実際にはそれほど公表されていませんが、実際はそうであるべきです。
次のことができます。
$args['tax_query'] = array(
array(
'taxonomy' => 'category',
'terms' => array('cat', 'dog'),
'field' => 'slug',
'operator' => 'NOT IN',
),
);
query_posts($args);
Operator引数には他の用語を使用できますが、上記のコードは基本的に、用語「cat」または「dog」を持たない分類法「category」からすべての投稿を取得するように言っています。
カスタム投稿タイプとカスタム分類法に対してこれを行う方法は次のとおりです。
$happening = new WP_Query(
array(
'post_type' => 'news', // only query News post type
'tax_query' => array(
array(
'taxonomy' => 'news-cat',
'field' => 'slug',
'terms' => 'media', // exclude items media items in the news-cat custom taxonomy
'operator' => 'NOT IN')
),
)
);
これは、カスタム投稿タイプからカスタム分類法を除外するのに完全に機能しました。
私は「RYOの「カテゴリの可視性」WordPressプラグイン」を使っていますが、これはかなりうまくいくようです。
管理ページで、どのカテゴリが表示されるのか、さまざまな分野から除外されるのかを決定できます。
http://ryowebsite.com/wp-plugins/category-visibility/ /
-アダム
特定の分類用語から投稿を除外するために、次のようにしました。
$argos = array(
'tax_query' => array (
array(
'taxonomy' => 'topics', // My Custom Taxonomy
'terms' => 'college', // My Taxonomy Term that I wanted to exclude
'field' => 'slug', // Whether I am passing term Slug or term ID
'operator' => 'NOT IN', // Selection operator - use IN to include, NOT IN to exclude
),
),
'post_type'=>'page', // Post type I want to show, can be a custom post type too
'posts_per_page' => -1,
'orderby' => 'title',
'order'=>'ASC',
'post_parent' =>$post->ID // show child posts or pages of current page/post
);
$query = new WP_Query( $args );
query_posts( array(
'post_type' => 'listings',
'tax_query' => array(
array(
'taxonomy' => 'status',
'field' => 'slug',
'terms' => 'sold',
'operator' => 'NOT IN'
),
)
)
);
このコードでは、status => sold from post_type =>のリストを除外