我有一个小问题。 我正在尝试检索某些自定义帖子类型中的所有帖子,不包括标记为类别ID 78的帖子。
我有两个帖子。 一个标记为仅78类,一个未标记为类别78。 我检查了this one这样的旧帖子,但对我来说它不起作用。 我看到了所有的结果。
这是我的代码:
function data_fetch(){
$the_query = new WP_Query( array( 'posts_per_page' => -1, 's' => esc_attr( $_POST['keyword'] ), 'post_type' => 'article', 'category__not_in ' => array( 78 ) ) );
if( $the_query->have_posts() ) :
while( $the_query->have_posts() ): $the_query->the_post(); ?>
<h2><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h2>
<?php endwhile;
wp_reset_postdata();
endif;
die();
}
这是post类型的init查询函数:
function article_cpt_init() {
$labels = array(
'name' => 'פריטי מאגר מידע',
'singular_name' => 'פריט מאגר מידע',
'add_new' => 'הוסף פריט מאגר מידע חדש',
'add_new_item' => 'הוסף פריט מאגר מידע חדש',
'edit_item' => 'ערוך פריט מאגר מידע',
'new_item' => 'פריט מאגר מידע חדש',
'all_items' => 'כל פריטי מאגר מידע',
'view_item' => 'הצג פריט מאגר מידע',
'search_items' => 'חפש פריט מאגר מידע',
'not_found' => 'לא נמצא פריט מאגר מידע',
'not_found_in_trash' => 'לא נמצא פריט מאגר מידע בפח',
'parent_item_colon' => '',
'menu_name' => 'פריטי מאגר מידע',
);
$args = array(
'labels' => $labels,
'exclude_from_search' => true,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'article' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'taxonomies' => array('category', 'audience'),
'menu_position' => null,
'supports' => array( 'title', 'excerpt', 'editor' )
);
register_post_type( 'article', $args );
}
add_action( 'init', 'article_cpt_init');
/**
* Register speciality Taxonomט
*/
function register_speciality_taxonomy() {
$taxonomies = array(
array(
'slug' => 'category',
'single_name' => 'נושא',
'plural_name' => 'נושאים',
'post_type' => 'article',
'rewrite' => array( 'slug' => 'נושאים' ),
),
array(
'slug' => 'audience',
'single_name' => 'קהל יעד',
'plural_name' => 'קהלי יעד',
'post_type' => 'article',
'rewrite' => array( 'slug' => 'קהל יעד' ),
),
array(
'slug' => 'tags',
'single_name' => 'תגיות',
'plural_name' => 'תגיות',
'post_type' => 'article',
'rewrite' => array( 'slug' => 'תגיות' ),
'hierarchical' => false,
)
);
foreach( $taxonomies as $taxonomy ) {
$labels = array(
'name' => $taxonomy['plural_name'],
'singular_name' => $taxonomy['single_name'],
'search_items' => 'Search ' . $taxonomy['plural_name'],
'all_items' => 'All ' . $taxonomy['plural_name'],
'parent_item' => 'Parent ' . $taxonomy['single_name'],
'parent_item_colon' => 'Parent ' . $taxonomy['single_name'] . ':',
'edit_item' => 'Edit ' . $taxonomy['single_name'],
'update_item' => 'Update ' . $taxonomy['single_name'],
'add_new_item' => 'Add New ' . $taxonomy['single_name'],
'new_item_name' => 'New ' . $taxonomy['single_name'] . ' Name',
'menu_name' => $taxonomy['plural_name']
);
$rewrite = isset( $taxonomy['rewrite'] ) ? $taxonomy['rewrite'] : array( 'slug' => $taxonomy['slug'] );
$hierarchical = isset( $taxonomy['hierarchical'] ) ? $taxonomy['hierarchical'] : true;
register_taxonomy( $taxonomy['slug'], $taxonomy['post_type'], array(
'hierarchical' => $hierarchical,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => $rewrite,
));
}
}
add_action( 'init', 'register_speciality_taxonomy' );
// Display User IP in WordPress
我做错了什么?
答案 0 :(得分:2)
试试这个:
function data_fetch(){
$args = array( 'posts_per_page' => -1,
's' => esc_attr( $_POST['keyword'] ),
'post_type' => 'article',
'tax_query' => array(
array(
'taxonomy' => 'audience',
'field' => 'term_id',
'terms' => array( 78 ),
'operator' => 'NOT IN',
),
),
);
$the_query = new WP_Query($args);
if( $the_query->have_posts() ) :
while( $the_query->have_posts() ): $the_query->the_post(); ?>
<h2><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h2>
<?php endwhile;
wp_reset_postdata();
endif;
die();
}