Posts2Posts, wp_query e problemi con orderby - Soluzioni e troubleshooting
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!
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.
