Abfrage Beiträge nach Kategorie UND benutzerdefinierte Feld, dann ORDERBY ein anderes benutzerdefiniertes Feld – Hilfe!

OK Ich muss Beiträge mit folgenden Kriterien abfragen:

category_name = Büro, Meta_Schlüssel = featured_post, Meta_Wert = Ja

und ordnen Sie diese Ergebnisse mit einem zweiten benutzerdefinierten Feld an, das einen numerischen Wert hat

meta_key = prop_order

Ich habe die folgende Abfrage, die die richtigen Beiträge zieht, aber nicht nach dem zweiten benutzerdefinierten Feld sortiert.

have_posts()) : $recent->the_post(); ?> 

Da ich jedoch bereits ein benutzerdefiniertes Feld in der Abfrage verwende, kann ich orderby = meta_value nicht verwenden.

Ich habe die folgende SQL-Abfrage in den Foren gefunden, kann sie aber nicht ausführen.

  posts LEFT JOIN $wpdb->postmeta AS proporder ON( $wpdb->posts.ID = proporder.post_id AND proporder.meta_key = 'prop_order' ) LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.term_id = 3 AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->posts.post_status = 'publish' AND $wpdb->wpostmeta.meta_key = 'featured_post' AND $wpdb->wpostmeta.meta_value = 'Yes' ORDER BY proporder.meta_value ASC "; $pageposts = $wpdb->get_results($querystr, OBJECT); ?> 

Jede Hilfe würde sehr geschätzt werden!

Vielen Dank

Dave

Solutions Collecting From Web of "Abfrage Beiträge nach Kategorie UND benutzerdefinierte Feld, dann ORDERBY ein anderes benutzerdefiniertes Feld – Hilfe!"

Ich habe Ihre Abfrage auf meiner lokalen Arbeitsstation ausgeführt. Es sieht so aus, als gäbe es einen Tipperrors:

Sie sollten $ wpdb-> postmeta.meta_value nicht $ wpdb-> wpostmeta.meta_value (zweimal verwendet) haben.

Danke für deine Eingabe. Ich wusste nicht, dass ich nie wieder darauf hingewiesen hatte! Danke an Ethan und ein paar anderen Kollegen, die den Arbeitscode geschrieben haben:

 < ?php global $wpdb; global $post; $querystr = " SELECT * FROM $wpdb->posts LEFT JOIN $wpdb->postmeta AS proporder ON( $wpdb->posts.ID = proporder.post_id AND proporder.meta_key = 'prop_order' ) LEFT JOIN $wpdb->postmeta AS propfeatured ON( $wpdb->posts.ID = propfeatured.post_id AND propfeatured.meta_key = 'featured_post' ) LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.term_id = 4 AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->posts.post_status = 'publish' AND propfeatured.meta_value='Yes' ORDER BY proporder.meta_value ASC "; $pageposts = $wpdb->get_results($querystr, OBJECT); //print_r($querystr); ?> < ?php foreach ($pageposts as $post): ?> < ?php setup_postdata($post); ?>  < ?php endforeach; ?> 

wobei ‘prop_order’ und ‘featured_post’ die benutzerdefinierten Felder und Posts sind, die mit featured_post = ‘Yes’ übereinstimmen und dann nach ‘prop_order’ in ASC-Reihenfolge geordnet sind.

hoffe das hilft!