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.
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'
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,
),
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);
}
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