Problema con Posts2Posts, wp_query y orderby - Solución
He estado trabajando en este problema durante varias horas y estoy atascado. La siguiente consulta se niega a aceptar cualquier directiva orderby. NOTA: Esto se ejecuta en una página single-cpt.php dentro del bucle normal de WP:
<?php $args = array(
'orderby' => 'title',
'order' => 'ASC',
'suppress_filters' => true,
'nopaging' => true,
'connected_type' => 'directory_to_projects',
'connected_items' => get_queried_object_id(),
);
$new_connected = new WP_Query($args);
// Mostrar posts conectados
if ( $new_connected->have_posts() ) { ?>
<h3>Proyectos</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 } ?>
He confirmado que no estoy ejecutando ningún plugin de ordenación de páginas o entradas que pueda interferir con 'orderby'. Cambiar 'orderby' a otra cosa (nombre, fecha, meta_value, lo que sea) no tiene ningún efecto en absoluto.
ACTUALIZACIÓN: En realidad, ningún parámetro para wp_query está funcionando. Intenté agregar 'posts_per_page' => 2,
y eso tampoco tuvo efecto. Debe ser algo relacionado con posts2posts pero creo que el soporte para ese plugin ha sido discontinuado. :( ¿Alguien ha tenido este problema?
¿Alguna idea? ¡Muchas gracias por tu ayuda!
No tengo experiencia con posts2posts, pero para ver la consulta que wp_query ejecuta en tu base de datos, antes de tu declaración if, coloca echo $new_connected->request.
Esto me ayudó mucho a depurar wp_query cuando no podía descubrir qué parámetros no estaban funcionando. La salida es la consulta SQL que se realizará en la base de datos. Por lo tanto, puedes copiar esta consulta en phpmyadmin para ver los resultados. Quizás te ayude a obtener más información sobre el problema.
PD: usar 'orderby' => 'meta_value'
requiere 'meta_key' => 'nombre_de_tu_metaclave'
, de lo contrario no sabrá de qué clave obtener el valor para ordenar.
