2016-05-30 8 views
2

Ich habe eine WP_Query, die ich für einen benutzerdefinierten Beitragstyp Filter über AJAX verwenden. Jeder Posttyp hat eine benutzerdefinierte Posttaxonomie (Kategorie), aber nur eine. Im Filterprozess möchte ich, dass das Ergebnis auf den Namen der Kategorien basiert, DANN auf den Namen der Produkte, aber ich habe nicht die richtige Dokumentation für die Verwendung von Methoden wie usort oder mit diesen Arten von Arrays gefunden.PHP: Sortieren mehrdimensionalen Array basierend auf Schlüssel für AJAX mit WP_Query

Hier ist meine PHP:

$args = array(
    'posts_per_page' => -1, 
    'post_type'    => 'product', 
    'orderby'     => 'title', 
    'order'      => 'ASC', 
    'tax_query' => array(
     array(
      'taxonomy' => 'products_tag', 
      'field'   => 'slug', 
      'terms'   => $taxonomy, 
      'operator' => 'AND', 
     ), 
    ), 
); 

$filter_query = new WP_Query($args); 
$num_posts = $filter_query->found_posts; 

if($filter_query->have_posts()): 

    while($filter_query->have_posts()) : $filter_query->the_post(); 

     $titles[] = get_the_title(); 
     $ids[] = get_the_ID(); 
     $product_categories = get_the_terms(get_the_ID(), 'products_category'); 
     $product_category = array_pop($product_categories); 
     $categories[] = $product_category->name; 
     $permalinks[] = get_permalink(); 
     $image_field = get_field('images'); 
     $images[] = $image_field[0]['url']; 
     $descriptions[] = get_field('short-description'); 

    endwhile; 

endif; 

wp_reset_postdata(); 

$response = array(
    'success' => true, 
    'titles' => $titles, 
    'ids' => $ids, 
    'categories' => $categories, 
    'permalinks' => $permalinks, 
    'images' => $images, 
    'descriptions' => $descriptions, 
    'taxonomy' => $taxonomy, 
    'num_posts' => $num_posts 
); 

Also, bevor die $results Variable deklariert ist, ich möchte, dass alle Arrays die $categories Array auf einfache Art und Weise folgen, haben aber keine Methode, wie. Ich habe die Dokumentation vielleicht falsch interpretiert, aber ich habe meinen Fall nicht in den php.net Handbüchern gesehen.

+0

Aber nur ein was? Begriff? –

+0

@ RutwickGangurde ja. –

+0

Versuchen Sie das. http://StackOverflow.com/Questions/17253005/How-to-Order-by-two-different-things-at-once-in-a-query-in-wordpress –

Antwort

1

Dies sollte funktionieren, obwohl ich es nicht versucht habe.

$query = new WP_Query(array('post_type' => 'page', 'orderby' => 'title menu_order', 'order' => 'ASC')); 

Beachten Sie, wie orderby 2 Parameter durch einen Raum getrennt ist.

Folgen dieses Thema für weitere Informationen: How to order by two different things at once in a query in WordPress

Verwandte Themen