Estoy trabajando en una plantilla de página de término de taxonomía personalizada donde queremos que los elementos que están conectados al término estén ordenados por una fecha de publicación (campo de fecha personalizado), y si hay varios elementos en el mismo día (formateados como AAAA-MM- DD) para luego ordenarlos por título y, finalmente, ordenar por título si el campo personalizado no se ha completado (elementos más antiguos).
Entonces, lo intenté de cientos de maneras diferentes con un WP_query y devuelve la mayoría de los resultados como los quiero, pero en este caso solo devuelve los elementos que tienen la meta_key de publishing_date. Todos los demás elementos se ignoran y no se muestran. Intenté una meta_query usando una relación de "o" y comparé la fecha de publicación como EXISTS y NOT EXISTS, pero eso arrojó 0 resultados para mí.
Además, el sitio todavía está ejecutando 3.5.2 y no quieren actualizar.
Aquí está mi consulta más reciente que me muestra las publicaciones que tienen el campo personalizado publishing_date mostrado en el orden correcto:
$term = get_queried_object(); // find the term of the taxonomy page we are on
$wp_query = new WP_Query( array(
'post_type' => 'resource',
'tax_query' => array(
array(
'taxonomy' => 'resource_types',
'field' => 'slug',
'terms' => $term->name,
)),
'meta_key' => 'publication_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => '10',
));
También intenté usar wpdb y ejecutar una consulta SQL, pero realmente no estoy seguro de cómo lograr lo que quiero hacer. ¡Si alguien pudiera ayudarme, eso sería increíble!
Gracias por adelantado.
'meta_query' => array( 'relation' => 'OR', array( //check to see if date has been filled out 'key' => 'publication_date', 'compare' => '!=', 'value' => date('Y-m-d'), ), array( //if no date has been added show these posts too 'key' => 'publication_date', 'value' => date('Y-m-d'), 'compare' => 'NOT EXISTS' ) ),
pero el orden no funciona: \