Ok, according to the codex, if you use tax_query
in your arguments for WP_Query, then it will change the default of post_type
from posts
to any
, BUT if a post_type has exclude_from_search
set to true
then it still won’t include it in any
. So since we don’t know what the configuration is on the portfolio post_type, I suggest you explicitly instruct the query to search for both posts
and your portfolio_post_type
.
$args = array(
//you'll need to put in the correct post-type for your portfolio items.
//the codex says that if you use 'tax_query' that post_type should default to 'any'
//but for the sake of it, try this...
'post_type' => array( 'posts, portfolio_post_type' ),
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'date',
'tax_query' => array(
'relation' => 'OR',
array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => array( 16 ),
'operator' => 'IN'
),
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => array( 19 ),
'operator' => 'NOT IN'
),
),
array(
'relation' => 'AND',
array(
'taxonomy' => 'portfolio_category',
'field' => 'term_id',
'terms' => array( 32 ),
'operator' => 'IN'
),
array(
'taxonomy' => 'portfolio_category',
'field' => 'term_id',
'terms' => array( 34 ),
'operator' => 'NOT IN'
),
),
),
);
Here’s the codex section that discusses this: https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters
Sincerely hope this helps.