Sto lavorando a un modello di pagina dei termini di tassonomia personalizzata in cui vogliamo che gli articoli collegati al termine siano ordinati in base a una data di pubblicazione (campo data personalizzato) e se ci sono più elementi nello stesso giorno (formattati come AAAA-MM- DD) per ordinare quelli per titolo e infine ordinare per titolo se il campo personalizzato non è stato compilato (elementi precedenti).
Quindi, l'ho provato in centinaia di modi diversi con un WP_query e restituisce la maggior parte dei risultati come li desidero, ma in questo caso restituisce solo gli elementi che hanno la meta_key di publishing_date. Tutti gli altri elementi vengono ignorati e non visualizzati. Ho provato una meta_query usando una relazione di "o" e ho confrontato la pubblicazione_data come EXISTS e NOT EXISTS, ma ciò ha restituito 0 risultati per me.
Inoltre, il sito è ancora in esecuzione 3.5.2 e non vogliono aggiornarlo.
Ecco la mia query più recente che mi ottiene i post con il campo personalizzato publishing_date visualizzato nell'ordine corretto:
$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',
));
Ho anche provato a utilizzare wpdb ed eseguire una query SQL, ma non sono sicuro di come realizzare ciò che voglio. Se qualcuno mi potesse aiutare sarebbe fantastico!
Grazie in anticipo.
'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' ) ),
ma l'ordinamento non funziona: \