it-swarm.com.de

Beiträge anzeigen, die mit dem von wp_list_categoies verknüpften Taxonomiebegriff übereinstimmen?

Das sollte einfach sein, aber es entgeht mir.

Ich habe einen benutzerdefinierten Beitragstyp und eine benutzerdefinierte Taxonomie. Die Taxonomie heißt "asset_type" und der Slug ist "type".

Ich verwende wp_list_categories, um ein Seitenleistenmenü bereitzustellen, in das Benutzer klicken können, um Beiträge in der angeklickten Taxonomie anzuzeigen.

Zum Beispiel:

<div class="category-sidebar"><?php
            $args = array('post_type' => 'design_asset', 'show_count' => 1, 'taxonomy' => 'asset_type');
            wp_list_categories($args);
            ?>
</div>

Dadurch werden meine Steuerbedingungen, zum Beispiel "Element", mit dem Link von http://site.dev/type/element/ korrekt angezeigt.

Es wird auf die Seite weitergeleitet, aber ich kann nicht herausfinden, wie meine Schleife geändert werden kann, sodass nur Beiträge angezeigt werden, die dem aktuellen Begriff entsprechen, in diesem Beispiel "Element", und der Titel der Seite wird nicht als "Element" angezeigt.

Meine Schleife, um ALLE Beiträge anzuzeigen, ist:

$args = array( 'post_type' => 'design_asset', 'posts_per_page' => 100, 'orderby' => 'title', 'order' => 'ASC'  );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
4
Steve

Steve, du hast ein paar Fragen gestellt, die ich mir angesehen habe, und ich bin zu dem Schluss gekommen, dass deine Schleife all deine Kopfschmerzen verursacht.

Meine Schleife, um ALLE Beiträge anzuzeigen, ist:

$args = array( 'post_type' => 'design_asset', 'posts_per_page' => 100, 'orderby' => 'title', 'order' => 'ASC'  );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();

Benutzerdefinierte Schleifen auf jeder Archivseite verursachen Probleme. Die Hauptabfrage ist auf diesen Seiten ziemlich spezifisch, und diese Abfragen sind ein Shlep, der in einer benutzerdefinierten Abfrage reproduziert werden kann. Um eine Vorstellung davon zu bekommen, wie die Hauptabfrage funktioniert und wie die Hauptabfrage entscheidet, was wo angezeigt werden soll, gehen Sie und überprüfen Sie meine Antwort auf diese Frage

Ich würde Ihnen raten, keine benutzerdefinierte Abfrage für Ihre Primärschleife auf einer Archivseite oder sogar auf der Homepage zu verwenden.

Mein Rat wäre, alle Ihre Schleifen in all Ihren Vorlagen auf die Standardschleife zurückzusetzen

if ( have_posts() ) :
    while ( have_posts() ) : the_post();

       <----LOOP ELEMENTS---->

     endwhile;
 endif;

Nachdem Sie zur Standardschleife zurückgekehrt sind, sehen Sie, dass alles normal funktioniert, außer dass Ihr benutzerdefinierter Beitragstyp nicht in Ihre Hauptschleife aufgenommen wird.

Um dies zu korrigieren, fügen Sie mit pre_get_posts Ihren benutzerdefinierten Beitragstyp und andere Änderungen zur Hauptabfrage hinzu

function include_cpt( $query ) {
    if ( !is_admin() && $query->is_main_query() ) {
        $query->set( 'post_type', 'design_asset' );
        $query->set( 'posts_per_page', '100' );
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' ); 
    }
}
add_action( 'pre_get_posts', 'include_cpt' );

Dies sollte alles normal und wie erwartet funktionieren

2
Pieter Goosen

Es wird auf die Seite weitergeleitet, aber ich kann nicht herausfinden, wie meine Schleife geändert werden kann, sodass nur Beiträge angezeigt werden, die dem aktuellen Begriff entsprechen, in diesem Beispiel "Element", und der Titel der Seite wird nicht als "Element" angezeigt.

Die folgenden Argumente für Ihre Schleife sollten ausreichen:

$args = array(
    'post_type' => 'design_asset',
    'posts_per_page' => 100,
    'orderby' => 'title',
    'order' => 'ASC',
    'tax_query' => array(
        array(
            'taxonomy' => 'asset_type',
            'field' => 'slug',
            'terms' => end( ( explode( '/', rtrim( $_SERVER['REQUEST_URI'], '/' ) ) ) )
        )
    )
);

Verweise:

2
Johannes Pille

Sie wurden von einem gemeinsamen Gremlin gebissen: wp_list_categories nimmt post_type nicht als Argument. wp_list_categories generiert immer Links zu Kategorien für den Standardposttyp 'post'. Wenn Sie Kategorien verwenden möchten, die durch benutzerdefinierte Beitragstypen getrennt sind, müssen Sie den entsprechenden Permalink angeben. Hier ist ein Ansatz zum Hinzufügen einer Permalink-Struktur für ein Archiv mit benutzerdefinierten Beitragstypen .

Die obigen Antworten sind hilfreich, wenn Ihre Kategoriearchive alle Beitragstypen enthalten sollen.

0
BigToe