Pracuję nad niestandardowym szablonem strony z terminologią taksonomii, w której chcemy, aby elementy powiązane z terminem były sortowane według daty publikacji (niestandardowe pole daty) - i jeśli w tym samym dniu jest wiele pozycji (sformatowanych jak RRRR-MM- DD), aby następnie posortować je według tytułu, a na koniec posortować według tytułu, jeśli niestandardowe pole nie zostało wypełnione (starsze elementy).
Tak więc wypróbowałem go na sto różnych sposobów z WP_query i zwraca większość wyników, tak jak chcę, ale w tym przypadku zwraca tylko te elementy, które mają meta_klucz z data_publikacji. Wszystkie pozostałe elementy są ignorowane i nie są wyświetlane. Próbowałem meta_query przy użyciu relacji „lub” i porównałem data_opublikowania jako EXISTS i NOT EXISTS, ale to zwróciło dla mnie 0 wyników.
Ponadto witryna nadal działa w wersji 3.5.2 i nie chcą jej aktualizować.
Oto moje ostatnie zapytanie, które powoduje, że posty z polem niestandardowym data_publikacji są wyświetlane we właściwej kolejności:
$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',
));
Próbowałem także użyć wpdb i uruchomić zapytanie SQL, ale tak naprawdę nie jestem pewien, jak to zrobić. Gdyby ktoś mógł mi pomóc, byłoby wspaniale!
Z góry dziękuję.
'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' ) ),
ale kolejność nie działa: \