La risposta migliore vince 5 €

Filtrare Custom Post in base a più Campi Personalizzati

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?

Sta leggendo questa pagina: 1 Ospite

Risposte 9

  1. ramspeed22 ha risposto:
    Punteggio: 3

    mettili tutti in un unico array

    $args = array(
    'post_type' => 'prodotti',
    'meta_query' =>
    'relation' => 'OR',
    'key' => 'campo1',
    'value' => 'valore1',
    'compare' => '='
    'key' => 'campo2',
    'value' => 'valore2',
    'compare' => '='
    );
    $query = new WP_Query( $args );

    alexdelta ha risposto:

    Ho tentato questa soluzione ma non funziona, mostra tutti i post senza filtrare nulla.

    ramspeed22 ha risposto:

    ma non li puoi filtrare tipo per tag o categoria??

    alexdelta ha risposto:

    Eh no, ogni post deve avere una decina di valori personalizzati e gestire il tutto con tag e categoria diventa troppo complicato.

    ramspeed22 ha risposto:

    hai provato a vedere qui?
    http://codex.wordpress.org/Custom_Fields

    ramspeed22 ha risposto:

    prova così:

    <?php
     $campo1 = get_post_meta($post->ID, 'campo-1', true);
     if($campo1): ?>
     Campo-1: <strong>
     <?php echo $campo1;?>
     </strong>
     <?php
     endif;
     ?>
     <?php
     $campo2 = get_post_meta($post->ID, 'campo-2', true);
     if($campo2): ?>
     <br />
     Campo-2: <strong>
     <?php echo $campo2;?>
     </strong>
     <?php
     endif;
     ?>

    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

  2. alexdelta ha risposto:
    Punteggio: 1

    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?

    ramspeed22 ha risposto:

    credo di no

Conosci la Risposta? Guadagna con il Tuo Know How!

Per lasciare una Risposta devi essere Registrato su TuoGuru

Effettua il Login o Registrati!