it-swarm.com.de

Benutzerdefinierten Beitrag nach Kategorie abfragen

Ich versuche, den benutzerdefinierten Beitragstyp news nach einer Kategorie mit dem Namen Alumni mit ID=160 abzufragen.

Wenn ich solche Argumente verwende, erhalte ich als Ergebnis alle meine benutzerdefinierten Beiträge ohne Alumni Kategorie:

$args = array(
  'posts_per_page' => -1,
  'post_type' => 'news',
  'orderby' => 'date',
  'order' => 'DESC',
  'category__not_in' => 160
);
$loop = new WP_Query( $args );

<?php while ( $loop->have_posts() ) : $loop->the_post();?>
...
<?php endwhile; ?>

Wenn Sie jedoch category__not_in in category__in ändern, wird eine leere Liste angezeigt, aber ich würde das Gegenteil des ursprünglichen Ergebnisses erwarten. Ich kann nicht wirklich verstehen, wo ich einen Fehler mache.

Außerdem habe ich versucht, stattdessen cat und category_name zu verwenden, und habe mit verschiedenen Kategorien herumgespielt, aber die Ergebnisse waren immer gleich.

Bei meinen Recherchen bin ich auf 'tax_query' gestoßen, aber ich kann es nicht so gut zum Laufen bringen. Die Dokumentation ist für mich nicht ganz klar.

1
bdobry

Sind diese benutzerdefinierten Taxonomien oder die regulären Kategorien?

wenn es sich nur um Kategorien handelt, sollten Sie Folgendes verwenden:

$args = array(
  'posts_per_page' => -1,
  'post_type' => 'news',
  'orderby' => 'date',
  'order' => 'DESC',
  'category_name' => 'Alumni'
);
$loop = new WP_Query( $args );

<?php while ( $loop->have_posts() ) : $loop->the_post();?>
...
<?php endwhile; ?>

wenn Sie es von ID verwenden möchten

benutzen:

'cat' => 160 

anstatt

'category_name' => 'Alumni'
1
rudtek

Haben Sie versucht, so etwas im Array zu verwenden, Hatten Sie ein ähnliches Problem früher, das dies löste.

'taxonomy' => 'your_taxonomy_name',

Oder so etwas wie:

    'tax_query' => array(
        'taxonomy' => 'your_taxonomy_name',
        'terms' => 'Alumni',
        'field' => 'slug',
        'include_children' => true,
),
0
Randomer11

Verwenden Sie die benutzerdefinierte Taxonomie, um benutzerdefinierte Posts mit bestimmten Kategorien abzurufen

Registrieren Sie den Taxonomienamen des benutzerdefinierten Beitragstyps wie Kategorien und weisen Sie jedem Beitrag eine Kategorie zu, wenn Sie einen neuen Beitrag hinzufügen. Hier ist das Beispiel des Codes

  add_action( 'init', 'news_my_taxonomy');
  function news_my_taxonomy(){
 // custom post type taxonomies
    $labels = array(
    'name' => 'Categories',
    'singular_name' => 'Category',
    'add_new' => 'Add Category',
    'add_new_item' => 'Add New Category',
    'all_items' => 'All Categories',
    'edit_item' => 'Edit Item',
    'new_item' => 'New Item',
    'view_item' => 'View Item',
    'update_item' => 'Update Category',
    'search_items' => 'Search Categories',
    'not_found' => 'No record found',
    'not_found_in_trash' => 'No items found in trash',
    'parent_item_colon' => 'Parent Item',
    'menu_name' => 'Categories'
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'news_category'),
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        );
        register_taxonomy('news_category', array('news'), $args);
}

dann

taxonomie-Vorlagenseite 'taxonomy-news_category.php' erstellen

und fügen Sie die Abfrage hinzu, um die Beiträge mit diesem Kategorienamen zu erhalten

   $cat_name = single_cat_title;
   $args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'news', 'paged' => $paged);

Die ganze Arbeit ist getan. Viel Glück

0
HeroWeb512