Posts2Posts, wp_query e problemi con orderby - Soluzioni e troubleshooting

14 ago 2013, 21:06:47
Visualizzazioni: 367
Voti: 0

Sto lavorando su questo problema da diverse ore e sono bloccato. La seguente query si rifiuta di accettare qualsiasi direttiva orderby. NOTA: Questo codice viene eseguito su una pagina single-cpt.php all'interno del normale Loop di WordPress:

<?php $args = array(
  'orderby' => 'title',      // Ordinamento per titolo
      'order' => 'ASC',      // Ordine ascendente
  'suppress_filters' => true, // Disabilita i filtri
  'nopaging' => true,        // Mostra tutti i risultati senza paginazione
  'connected_type' => 'directory_to_projects', // Tipo di connessione
  'connected_items' => get_queried_object_id(), // ID dell'oggetto corrente
);

$new_connected = new WP_Query($args);

// Mostra i post collegati
if ( $new_connected->have_posts() ) { ?>

    <h3>Progetti</h3>
    <ul>
        <?php while ( $new_connected->have_posts() ) : $new_connected->the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; 
        endif;
        wp_reset_postdata(); ?>
    </ul>
<?php } ?>

Ho confermato che non sto utilizzando alcun plugin di ordinamento di pagine o post che potrebbe interferire con 'orderby'. Cambiare 'orderby' con qualcos'altro (name, date, meta_value, ecc.) non ha alcun effetto.

AGGIORNAMENTO: In realtà, nessun parametro per wp_query funziona. Ho provato ad aggiungere 'posts_per_page' => 2, e non ha avuto alcun effetto. Deve essere un problema legato a posts2posts, ma credo che il supporto per quel plugin sia stato interrotto. :( Qualcuno ha mai avuto questo problema?

Qualche idea? Grazie mille per il vostro aiuto!

1
Commenti

Se disattivi il plugin Posts2posts, la query restituisce i post corretti?

Charles Clarkson Charles Clarkson
14 ago 2013 21:12:55
Tutte le risposte alla domanda 1
0

Non ho alcuna esperienza con posts2posts, ma per vedere la query che wp_query esegue sul tuo database, prima della tua istruzione if, inserisci echo $new_connected->request. Mi è stato molto utile per il debug di wp_query quando non riuscivo a capire quali parametri non funzionassero. L'output è la query SQL che verrà eseguita sul DB. Pertanto puoi copiare questa query in phpmyadmin per vedere i risultati. Forse ti aiuterà a comprendere meglio il problema!

PS: usare 'orderby' => 'meta_value' richiede 'meta_key' => 'your_metakey_name' altrimenti non sa da quale chiave ottenere il valore per ordinare.

18 ago 2013 20:47:06