Chciałbym zapytać tylko o strony z określonym szablonem strony WP_Query
lub funkcją, która zwróciłaby obiekt postu, ale nie mogę znaleźć żadnych informacji na ten temat w oficjalnym kodeksie.
14
Spróbuj tego ... Zakładając, że nazwa szablonu to „my_template.php”,
$query = new WP_Query(
array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'my_template.php'
)
);
//Down goes the loop...
Możesz także użyć get_posts lub zmodyfikować posty z zapytaniami, aby wykonać zadanie. Obie te funkcje używają tych samych parametrów, co WP_Query .
Niepoprawnie: od Wordpress 3 potrzebujesz czegoś podobnego do:
$args = array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'my_template.php'
)
)
);
post_type
. W przeciwnym razie nie potrzebujeszmeta_query
tablicy dla pojedynczej niestandardowej pary klucz / wartość.meta_key
ameta_value
lub o prostym szeregu, która może zawierać wiele warunków.Szablon strony jest przechowywany jako wartość meta z kluczem „_wp_page_template”.
Wystarczy zatem użyć tego klucza w parametrze meta zapytania. Dla przykładów
Zobacz http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value
i http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
źródło
Jeśli jakakolwiek próba niepoprawnie zakończy się zerowymi postami, prawdopodobnie nazwa szablonu jest nieprawidłowa. Próbowałem nazwy pliku php i nazwy mojego szablonu i nie działały. Następnie postanowiłem sprawdzić pole wyboru szablonów, w którym wybieramy szablon w edytorze stron. Znalazłem to:
Użyłem
templates-map/component-tutorial-1.php
i zadziałało.źródło
Jeśli szablon znajduje się w innym folderze:
źródło