Salve a tutti, sto cercando di filtrare dei post in wordpress in base a dei campi personalizzati.
Questa è la parte di codice che utilizzo ripresa dal codex di wordpress:
$args = array( 'post_type' => 'prodotti', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'campo1', 'value' => 'valore1', 'compare' => '=' ), array( 'key' => 'campo2', 'value' => 'valore2', 'compare' => '=' ) ) ); $query = new WP_Query( $args );
Se aggiungo altri valori da confrontare la pagina comincia a caricare all’infinito e non da più risultati.
Come mai?

Risposte 9
mettili tutti in un unico array
Ho tentato questa soluzione ma non funziona, mostra tutti i post senza filtrare nulla.
ma non li puoi filtrare tipo per tag o categoria??
Eh no, ogni post deve avere una decina di valori personalizzati e gestire il tutto con tag e categoria diventa troppo complicato.
hai provato a vedere qui?
http://codex.wordpress.org/Custom_Fields
prova così:
ti passo pure un link dove ti spiega cosa dei fare http://www.seriodomenico.it/wordpress/custom-field-in-wordpress-cosa-sono-a-cosa-servono-come-usarli.html
Dai un occhiata qui http://matthewaprice.com/search-multiple-custom-fields-in-wordpress/
Seguendo questo tutorial forse sono riuscito a risolvere:
http://www.nicolaskuttler.com/code/custom-wordpress-sql-query-for-multiple-meta-values/
Ho impostato nella query 5 valori cosi e ottengo i risultati come servono a me, ovvero deve visualizzare tutti i post dove trova almeno un valore del campo selezionato.
AND ( m1.meta_key = ‘campo1′ AND m1.meta_value = ‘valore1′ )
OR ( m2.meta_key = ‘campo2′ AND m2.meta_value = ‘valore2′ )
OR ( m2.meta_key = ‘campo3′ AND m2.meta_value = ‘valore3′ )
OR ( m2.meta_key = ‘campo4′ AND m2.meta_value = ‘valore4′ )
OR ( m2.meta_key = ‘campo5′ AND m2.meta_value = ‘valore5′ )
Che ne dite? Può essere un problema ripetere tot volte m2.meta_key e m2.meta_value per campi e valori diversi?
credo di no