2017-05-16 17 views
0

これは、同じ著者によって書かれた現在のものではない投稿を投稿します。は、リストのカテゴリの少なくとも1つに合致します。著者による投稿の照会またはカテゴリ

<?php $loop = new WP_Query([ 
    'post__not_in' => [$current_id], 
    'category__in' => $categories, 
    'author' => $author_id, 
    'posts_per_page' => 3 
]); ?> 

しかし、どのように私は私に同じ著者OR会う現在のカテゴリのいずれかで書かれているすべてのポストを与えるクエリを作ることができますか?

category__inauthorを互いに排除しないようにするにはどうすればよいですか?

答えて

0

get_resultsを使用して独自のSQLクエリを作成することができます。

例:

$querystr = " 
SELECT $wpdb->posts.* 
FROM $wpdb->posts, $wpdb->postmeta 
WHERE $wpdb->posts.ID NOT IN $current_id 
AND $wpdb->posts.ID = $wpdb->postmeta.post_id 
AND ($wpdb->postmeta.meta_author = $author_id 
OR $wpdb->postmeta.meta_category_ID IN $categories) 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post' 
ORDER BY $wpdb->posts.post_date DESC 
LIMIT 3 
"; 

$pageposts = $wpdb->get_results($querystr, OBJECT); 

明らかにこれは一例クエリですが、それはあなたがあなたのクエリを構築する方法を示しています。

注:私は現在、フィールド名をテストするためのWP DBへのアクセス権を持っていないため、上記のものはpurelzの推測です。したがって、実際の世界のニーズを満たすためにクエリをカスタマイズする必要があります。

さらに詳しい情報はcodexにあります。

0

フィルタposts_whereを使用して、OR文(作成者またはカテゴリ)をそのフィルタに移動できます。

関連する問題