Schleife mit dynamischen Kategorien

Ich muss einen WordPress-Loop erstellen, der alle Posts anzeigt, die einer Kategorie zugeordnet sind, aber ich brauche diese Kategorie, um zu der Seite zu passen, die ich gerade betrachte.

Beispiel: Angenommen, ich habe Kategorie 1 mit allen Posts, die auf Seite 1 angezeigt werden sollen. Wenn ich auf Seite 2 gehe, möchte ich, dass diese Kategorie in Kategorie 2 geändert wird, sodass alle zugehörigen Posts auf Seite 2 angezeigt werden.

Aktuell sieht meine Schleife so aus:

    

Sorry, this page does not exist

Offensichtlich werden hier alle Beiträge unabhängig von der Kategorie angezeigt. Ich muss sicherstellen, dass ich die Kategorie abhängig von der Seite ändere.

Irgendwelche Vorschläge?

Solutions Collecting From Web of "Schleife mit dynamischen Kategorien"

Der folgende Code aktiviert Kategorien für Seiten. Eine Beispielseitenvorlage wird bereitgestellt, die die der Seite zugewiesenen Kategorien durchläuft und die Beiträge für jede Kategorie anzeigt.

Wenn Sie den Benutzer auf die Auswahl nur einer Kategorie beschränken möchten, können Sie eine Lösung wie Taxonomy Single Term verwenden .

Verknüpfen Sie die category mit dem page :

 function wpse_page_category() { register_taxonomy_for_object_type( 'category', 'page' ); } add_action( 'init', 'wpse_page_category', 999 ); 

Beispiel für die Vorlage einer leeren Seite (template-page-categories.php):

 < ?php /** * Template Name: Page Categories * */ get_header(); ?> < ?php // Standard loop for page content if ( have_posts() ) { while ( have_posts() ) { the_post(); the_title( '

', '' ); the_content(); } } // Get the category assigned to this page and list the posts in this category. // This code works when multiple categories have been assigned to the page. $page_categories = get_the_terms( get_the_ID(), 'category' ); if ( $page_categories && ! is_wp_error( $page_categories ) ) { foreach ( $page_categories as $page_category ) { $posts_query = new WP_Query( [ 'post_type' => 'post', 'cat' => $page_category->term_id, ] ); if ( $posts_query->have_posts() ) { echo '

Posts from the ' . esc_html( $page_category->name ) . ' category:

'; while ( $posts_query->have_posts() ) { $posts_query->the_post(); the_title( '

', '

' ); //the_content(); } echo '
'; } } } ?>