WordPress Query based on Custom Field and Category

Il bello di WordPress e’ che puoi farci di tutto e se il loop di default che ti propone non ti sta bene e vuoi loopare su query personalizzate da te, puoi.

Per esempio potreste volere che la query principale riporti solo determinati post basati su specifiche categorie, tags o quello che vi pare, e allora dovrete crearvi voi la query, ma anche per questo c’e’ qualcuno che ci ha gia’ pensato togliendovi diverso lavoro.

Con la seguente query, per esempio, riuscirete a estrapolare dal database di WordPress tutti i post contenuti nelle categorie 1,2 e 3, che hanno la meta_key “paragraf”, e ordinate per meta_value ascendente:

querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id)
WHERE $wpdb->postmeta.meta_key = 'paragraf'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND $wpdb->post2cat.category_id IN (1,2,3)
ORDER BY $wpdb->postmeta.meta_value ASC
";

Ora bastera’ seguire il resto del tutorial per capire come visualizzare i risultati della vostra custom query.

Tags: , , , , , , , , , , ,

Post simili:

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

4 Responses to “WordPress Query based on Custom Field and Category”
  1. Ravi
    20:09 on March 17th, 2011

    gud article

  2. enrico
    10:49 on November 18th, 2010

    Ciao,

    Come faccio a inserire nella query che voglio solo i post della categoria in essere cio√® selezionata dell’ elenco delle categorie? Ho provato con:

    $IDcategoria = $wp_query->get_queried_object_ID();

    E nella query ho inserito:

    AND $wpdb->post2cat.category_id IN ($IDcategoria)

    Ma non funziona na cicca! Non trova nessun post :(
    http://www.superkarma.it

  3. alexnull
    19:44 on October 17th, 2008

    do you know how to query for 2 custom fields? thankss!! :)

  4. redivide
    11:29 on February 24th, 2008

    My italian is a bit rusty but i get the gist of it. Will try it.

Leave a comment

(required)

(required)


*

Categories