Fügen Sie “Kategorie” zur Mysql-Abfrage hinzu

Ich brauche deine Hilfe 🙂

Ich habe diese benutzerdefinierte Mysql-Abfrage auf WordPress gemacht:

$querystr = " SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE post_id IN( SELECT DISTINCT wpostmeta.post_id FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'color' AND wpostmeta.meta_value = 'red' AND wposts.post_type = 'post' ) AND meta_key ='size' ORDER BY RAND() LIMIT 4 "; 

Wie kann ich bei der Suche nach “Kategoriename” oder “Kategorie-ID” HINZUFÜGEN?

Prost 😉

Solutions Collecting From Web of "Fügen Sie “Kategorie” zur Mysql-Abfrage hinzu"

Wenn ich etwas nicht vermisse, sollte das unten für Sie arbeiten. Es ist ziemlich direkt aus dem Codex: WP_Query – Custom Field Parameters . Mach es so:

 $args = array( 'post_type' => 'post', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'red', 'compare' => '=' ), array( 'key' => 'size', 'compare' => 'EXISTS' ) ) ); $query = new WP_Query( $args ); 

Zusätzliche Ressourcen hier:

  • Meta_query vergleichen Operator Erklärung
  • Abfrage von Posts nur mit vorgestellten Bildern
  • Es gibt mehr, benutze einfach die Suche

Um in der Suche nach “Kategoriename” oder “Kategorie-ID” HINZUFÜGEN, müssen Sie innere Verknüpfung mit (wp_term_relationships) anwenden.

Bitte versuchen Sie dies

$ category_id ist deine Kategorie-ID

 < ?php $args = array( 'post_type' => 'post', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'red', 'compare' => '=' ), array( 'key' => 'size', 'compare' => 'EXISTS' ) ), 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'id', 'terms' => $category_id, 'operator' => 'IN' )), ); $query = new WP_Query( $args ); ?>