Wiesz, od wersji WP3.0 dostępne są opcje niestandardowych zaawansowanych zapytań, co jest świetne. W związku z tym niektóre parametry zapytań pól niestandardowych, takie jak meta_key, meta_value, były przestarzałe dla nowego parametru meta_query ( patrz tutaj )
Staram się mieć dość proste zapytanie z nową składnią, zapytania do postów określonego typu post_type (usługi), które zawierają określony klucz meta (order_in_archive) - wszystko idzie zgodnie z oczekiwaniami. Ale - chcę zamówić według zapytania według meta_value i bez powodzenia.
To jest moje zapytanie -
query_posts(
array( 'post_type' => 'services',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
array('key' => 'order_in_archive'))
)
);
Próbowałem uporządkować także według meta_value_numeric i meta_value, ale w każdym razie wyniki są sortowane według daty publikacji (jak robią to zwykłe posty). Czy ktoś wie, jak to zrobić?
Dzięki
źródło
Kodeks WP jest dezorientujący, gdy rozwiązuje ten problem.
W rzeczywistości nie potrzebujesz parametru meta_query, aby korzystać z orderby, zamiast tego używa parametru meta_key, który wprawdzie w WP Codex jest przestarzały, ale ustalono tutaj: Jak korzystać z orderby z meta_query w Wordpress 3.1? ta orderyby nadal potrzebuje meta_key.
tak powinno być
źródło
To łatwe:
Oto mój kod:
Główny szczegół to: uwzględnij
meta_key
, mój kod nie zamówił, chyba żemeta_key
jest dołączony, i to wszystko:Oto pełny kod listy
directors
zdjęć uporządkowanych wedługdirector_weight
:źródło
Nie używaj postów query_posts.
Użyj parametrów WP_Meta_Query
źródło
Uważam, że działa całkiem dobrze.
źródło
meta_query
parametru i rozpoczęciaorderby
pracy z nim, a nie starszych, ale wciąż funkcjonalnychmeta_key
/meta_value
parametrów. Nie zachęcajmy też do używaniaquery_posts
.Miałem zestaw niestandardowych dat wydarzeń, które musiałem sortować według daty malejącej. Ponieważ moja niestandardowa data zdarzenia była zapisana w mojej tabeli wp_postmeta i zazwyczaj różniła się od daty post_date lub daty modyfikacji, działało to dla mnie:
Następnie możesz przechodzić między $ postami w taki sposób:
źródło
Ta praca dla mnie
Potrzebne tylko do podania klucza dla klauzuli order_clause
źródło