it-swarm.com.de

Seitenvorlagenabfrage mit WP_Query

Ich möchte nur Seiten mit einer bestimmten Seitenvorlage mit WP_Query oder einer Funktion abfragen, die das Post-Objekt zurückgibt, kann jedoch keine Informationen dazu im offiziellen Codex finden.

Versuchen Sie dies ... Angenommen, der Name der Vorlage lautet '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...

Sie können auch get_posts verwenden oder query posts ändern, um die Aufgabe zu erledigen. Diese beiden Funktionen verwenden dieselben Parameter wie WP_Query .

16

Falsch: Ab WordPress 3 benötigen Sie etwas Ähnliches wie:

$args = array(
    'post_type'  => 'page', 
    'meta_query' => array( 
        array(
            'key'   => '_wp_page_template', 
            'value' => 'my_template.php'
        )
    )
);
20
BenJam

Die Seitenvorlage wird als Metawert mit dem Schlüssel "_wp_page_template" gespeichert.

Sie müssen diesen Schlüssel also nur in einem Meta-Abfrageparameter verwenden. Zum Beispiel

Siehe http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value

und http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

1
anmari

Wenn der Versuch einer Person fälschlicherweise zu null Beiträgen führt, ist der Name der Vorlage wahrscheinlich falsch. Ich habe den PHP-Dateinamen und den Namen meiner Vorlage ausprobiert und sie haben nicht funktioniert. Dann habe ich beschlossen, das Auswahlfeld für Vorlagen zu überprüfen, in dem wir die Vorlage im Seiteneditor auswählen. Ich habe das gefunden:

<option value="templates-map/component-tutorial-1.php" 
 selected="selected">Tutorial -1</option>

Ich habe templates-map/component-tutorial-1.php benutzt und es hat funktioniert.

0
Ivan Gomes