Wie kann ich alle Datensätze der Taxonomie-Kategorie in der WordPress-Abfrage erhalten?

Lesezeit: 3 Minuten

Benutzer-Avatar
Nikunj Soni

Ich habe das Plugin Easy Content Types verwendet und den Post-Typ in WP Call Recipes erstellt. Ich habe auch eine Taxonomie-Kategorie hinzugefügt und 4 Kategorien wie Vorspeise, Getränke usw. erstellt.

Jetzt muss ich in der WP-Abfrage alle Datensätze des Starters abrufen. Wie kann ich das bekommen?

Ich verwende diese Abfrage, aber sie funktioniert nicht. Es gibt alle Aufzeichnungen des Beitragstyps „Rezepte“ an. Hier ist eine Abfrage

$recipes = query_posts('post_type=recipes&taxonomy=recipescategory&category_name=Starters');

Benutzer-Avatar
Pieter Goosen

Sie haben viele Fehler in Ihrem Code und ein Missverständnis über Kategorien.

  • Benutze niemals query_posts um eine benutzerdefinierte Abfrage zu erstellen

Notiz: Diese Funktion ist nicht dafür gedacht, von Plugins oder Themes verwendet zu werden. Wie später erklärt wird, gibt es bessere, leistungsfähigere Optionen, um die Hauptabfrage zu ändern. query_posts() ist eine zu einfache und problematische Möglichkeit, die Hauptabfrage einer Seite zu ändern, indem sie durch eine neue Instanz der Abfrage ersetzt wird. Es ist ineffizient (führt SQL-Abfragen erneut aus) und schlägt unter bestimmten Umständen völlig fehl (besonders häufig, wenn es um die Paginierung von Beiträgen geht).

  • Wenn Sie eine benutzerdefinierte Abfrage ausführen müssen, verwenden Sie diese WP_Query oder get_posts

  • category_name übernimmt die Kategorie Schnecke, nicht der Name. Der Name des Parameters täuscht

  • Die “Kategorien”, die zu einer benutzerdefinierten Taxonomie gehören, werden Begriffe genannt. Ich habe einen Beitrag geschrieben, den ich auch in den Kodex aufgenommen habe, den Sie überprüfen können hieres beschreibt die Unterschiede.

  • Um Beiträge aus einer benutzerdefinierten Taxonomie abzurufen, müssen Sie a verwenden tax_query. Die Kategorieparameter funktionieren hier nicht

Erstellen Sie mit all dem oben Gesagten Ihre Abfrage so, dass sie so aussieht

$args = array(
    'post_type' => 'recipes',
    'tax_query' => array(
        array(
            'taxonomy' => 'recipescategory',
            'field'    => 'name',
            'terms'    => 'Starters',
        ),
    ),
);
$query = new WP_Query( $args );
if( $query->have_posts() ){
    while( $query->have_posts() ) {
        $query->the_post();

        //Your loop elements

    }
    wp_reset_postdata();
}

  • Kein Problem, ich habe einen Kommentar zu Ihrer anderen Frage hinterlassen. Probieren Sie diesen Code aus, der für dieses Problem angegeben wurde. Wenn Sie nicht richtig kommen, hinterlassen Sie einen Kommentar

    – Pieter Goosen

    15. November 2014 um 9:45 Uhr

Benutzer-Avatar
bhavesh vala

Versuch es

 $ar = array (
       'post_type'=>'recipes',
       'taxonomy'=>'recipescategory',
       'category_name'=>'Starters'
    );     
    $posts = get_posts($ar);

** Foreach-Schleife **

 foreach($posts as $p){ ?>
             <div class="sub_cont">    
              <div class="sub_img"> 

                <?php $url = wp_get_attachment_url( get_post_thumbnail_id($p->ID));?>       
                <a href="https://stackoverflow.com/questions/26627839/<?php echo $permalink = get_permalink( $p->ID); ?>"><img src="<?php echo $url; ?>" longdesc="URL_2" alt="Text_2" /> </a>

            </div>
            <div class="desc_title">
               <a href="https://stackoverflow.com/questions/26627839/<?php echo $permalink = get_permalink( $p->ID); ?>">
                   <?php echo $post_title=$p->post_title; ?>
               </a>
           </div>
           <div class="cont_add"></div>          
        </div> 
    <?php } ?>

Benutzer-Avatar
Gopi

Sie können die get_posts-Funktion verwenden

$args = array("post_type"=>"recipes","category_name"=>"starter","posts_per_page"=>20);
$starters = get_posts($args); 

  • Übergeben Sie den richtigen Slug für post_type und category_name? Versuchen Sie es mit category anstelle von category_name. Sie müssen die Kategorie-ID übergeben.

    – Gopi

    29. Oktober 2014 um 10:41 Uhr

  • Ich habe all diese Dinge getan, die von Ihnen geleitet wurden, und auch Kategorie anstelle von Kategoriename verwendet, aber es funktioniert immer noch nicht

    – Nikunj Soni

    29. Oktober 2014 um 10:53 Uhr

1354710cookie-checkWie kann ich alle Datensätze der Taxonomie-Kategorie in der WordPress-Abfrage erhalten?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy