In der Wordpress-Dokumentation heißt es, dass dies is_page_template()
mit einem "Vorlagennamen" verglichen wird, sofern einer angegeben ist.
Ich habe eine Vorlage in gespeichert page-homepage.php
genannt Homepage
:
/*
* Template Name: Homepage
* Description: The template for displaying the homepage
*/
Und ich habe einen Code, den ich in meiner functions.php ausführen möchte, wenn ich diese Vorlage verwende:
if (is_page_template('Homepage')) {
...
Es wird jedoch nicht ausgelöst, wenn ich mich auf einer Seite befinde, die diese Vorlage verwendet.
Wenn ich mir den Code ansehe, für den Wordpress ausgeführt wird is_page_template()
, sieht es so aus, als würde tatsächlich nach dem Dokumentnamen gesucht, nicht nach dem Vorlagennamen ...?
function is_page_template( $template = '' ) {
$page_template = get_page_template_slug( get_queried_object_id() );
if ( $template == $page_template )
return true;
In meinem Fall scheint das $page_template
so zu sein page-homepage.php
- nicht der Name der Vorlage, wie die Dokumentation vorschlägt ...?
Mache ich etwas falsch?
quelle
Antworten:
Ihr Zustand sollte so geschrieben sein:
Ich glaube, die Verwirrung ist das Ergebnis zweier Dinge:
is_page_template()
zeigt dieget_page_template_slug()
Funktion im Kern. Diese Funktion gibt tatsächlich einen Dateinamen zurück, nicht den Vorlagen-Slug. https://codex.wordpress.org/Function_Reference/get_page_template_slugWenn Sie ein Argument für die
is_page_template()
Funktion angeben (wie im obigen Beispiel), ist der Dateipfad relativ zum Themenstamm.Diese Funktion funktioniert nicht innerhalb der Schleife.
quelle
get_page_template_slug()
sie keine Schnecke zurückgeben!Ich denke, das Beste, was ich sagen kann, ist, dass der Dateiname überprüft wird und in Ihrem Fall page-homepage.php. so:
Andere Dinge, an die Sie denken sollten, sind, wenn die Vorlagendatei tatsächlich in einem anderen Ordner innerhalb des Themas gespeichert ist. Weiterlesen
Eine weitere Sache
Template Name: Homepage
ist, was allgemein verwendet wird, um die Vorlage beim Erstellen einer Seite oder eines Beitrags zu identifizieren.quelle
page-templates/page-homepage.php
unterscheidet sich von der Vorlage im Themenstamm.