2017-11-08 4 views
0

Ich habe ein kleines Problem. Ich versuche, alle Beiträge von bestimmten benutzerdefinierten Beitragstyp, mit Ausnahme der Beiträge in Kategorie ID 78 getaggt.Wordpress- wie 'Kategorie__not_in' in wp_query verwenden

Ich habe zwei Beiträge. Eine, die nur als Kategorie 78 markiert ist und eine, die nicht als Kategorie 78 markiert ist. Ich habe in älteren Posts wie this one eingecheckt, aber für mich funktioniert es nicht. Ich sehe alle Ergebnisse.

dies ist mein Code:

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(); 
} 

Dies ist der Beitrag Typ init Abfragefunktion:

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 

Was mache ich falsch?

+0

können Sie den Posttyp angeben und die Taxonomie Typ? – Yamu

+0

meinst du den benutzerdefinierten Post-Typ-Init-Code? – DavSev

+0

ok lass mich das sehen, ich kann sehen, dass der Beitragstyp Artikel ist, aber ich brauche den Kategorietyp (ist dieser Beitrag mit der Standardkategorie markiert oder einer benutzerdefinierten Taxonomie zugewiesen?) – Yamu

Antwort

2

Versuchen Sie folgendes:

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(); 
} 
+0

sorry, immer noch alle Beiträge. .. Ich verdoppelte die Kontrolle und die Katze ID ist korrekt ... Was kann dazu führen? – DavSev

+1

In Ihrem Post-Init-Code kann ich sehen, dass Sie versuchen, die Taxonomie "Kategorie" für Artikel zu registrieren. 'Kategorie ist standardmäßig reservierte Taxonomie, ändern Sie das so etwas andere Taxonomie. – Yamu

+1

können Sie sich in Ihr Backend einloggen und die URL für die Kategorie-ID von 78 anzeigen (eine, die Sie ausschließen möchten) – Yamu

Verwandte Themen