2014-10-29 20 views
5

Używam wtyczki łatwych typów zawartości & utworzony typ postu w recepturach połączeń WP. Dodałem także kategorię taksonomii, w której & utworzyłem 4 kategorie, takie jak Starter, Napoje, itp.Jak mogę uzyskać wszystkie rekordy kategorii kategorii w zapytaniu WordPress?

Teraz w zapytaniu WP potrzebuję uzyskać wszystkie zapisy startera. Jak mogę to zdobyć?

Używam tego zapytania, ale nie działa. To daje wszystkie rekordy receptur postu typu Oto Zapytanie

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

Odpowiedz

5

Masz wiele błędów w kodzie i nieporozumienia dotyczące kategorii.

  • Nigdy nie używaj query_posts skonstruować kwerendę niestandardowej

Uwaga: Funkcja ta nie jest przeznaczona do stosowania przez wtyczki lub tematów. Jak wyjaśniono później, istnieją lepsze, bardziej wydajne opcje zmiany głównego zapytania. query_posts() jest zbyt uproszczonym i problematycznym sposobem modyfikacji głównego zapytania strony poprzez zastąpienie go nowym wystąpieniem zapytania. To jest nieefektywne (Ponowne wykonanie zapytań SQL), a wręcz nie w pewnych okolicznościach (szczególnie często w kontaktach z postami paginacji)

  • Jeśli masz do uruchomienia kwerendy niestandardowej skorzystać z WP_Query lub get_posts

  • category_name trwa kategorii ślimak, nie nazwę. Nazwa parametru zwodzi

  • "Kategorie" należące do niestandardowej taksonomii są nazywane terminami. Napisałem post, który również umieściłem w kodeksie, który można sprawdzić pod numerem here, opisuje różnice. Aby uzyskać posty z niestandardowej taksonomii, musisz skorzystać z tax_query. Parametry kategorii nie zadziała tutaj

Z wszystkich powyższych powiedział utworzyć zapytanie tak, że wygląda to

$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(); 
} 
+0

dzięki za cenne sugestie !! miłego dnia –

+0

Nie ma problemu, zostawiłem komentarz do twojego drugiego pytania, spróbuj tego kodu podanego w tym problemie. Jeśli nie przyjdziesz dobrze, zostaw komentarz –

0

Można użyć get_posts funkcjonować

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

nie działa –

+0

Czy przechodząc poprawnego ślimak na post_type i CATEGORY_NAME? Wypróbuj kategorię zamiast nazwa_kategorii. Musisz podać identyfikator kategorii. – Gopi

+0

Zrobiłem wszystkie te rzeczy, którymi kieruję, a także korzystasz z kategorii zamiast nazwy kategorii, ale nadal nie działa –

1

spróbować

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

pętla foreach ** **

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="<?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="<?php echo $permalink = get_permalink($p->ID); ?>"> 
        <?php echo $post_title=$p->post_title; ?> 
       </a> 
      </div> 
      <div class="cont_add"></div>   
     </div> 
    <?php } ?> 
Powiązane problemy