it-swarm.com.de

Bedingtes Tag, um zu überprüfen, ob 'page.php' verwendet wird?

Ich versuche zu überprüfen, ob die page.php-Vorlage verwendet wird oder nicht. Ich habe versucht, is_page_template( 'page.php' ), aber es funktioniert nicht.

Ich kann is_page() auch nicht verwenden, da ich nur etwas tun möchte, wenn page.php verwendet wird, und nicht, wenn eine andere benutzerdefinierte Seitenvorlage verwendet wird.

Bitte lassen Sie mich dies wissen und danke!

Bearbeiten: Hätte früher erwähnen sollen, dass ich eine Datei namens common-options.php habe, die in fast allen Vorlagen enthalten ist (wie index.php, page.php, single.php und page_blog.php). In dieser Datei versuche ich, die Prüfung mit dem durchzuführen folgenden Code:

if ( is_page_template( 'page.php' ) ) {
    echo "success!";
}

Es funktioniert jedoch nicht, wenn ich eine Seite öffne, die die "Standardvorlage" verwendet.

6
user1981248

Ich bin auf dasselbe Problem gestoßen und meine Lösung war dieser Code:

if(basename(get_page_template()) === 'page.php'){

}

basename(get_page_template()) ruft den Dateinamen der Seitenvorlage ab (gemäß https://codex.wordpress.org/Function_Reference/get_page_template ) und ich überprüfe dann, ob er gleich 'page.php' ist

8
intagli

Sie haben zwei nützliche Funktionen: is_page() und is_page_template() .

Die Funktion is_page() gibt true zurück, wenn Sie sich auf einer Seite befinden, und die Funktion is_page_template() gibt false zurück, wenn der aktuelle Beitrag (kann eine Seite sein) keine benutzerdefinierte Vorlage verwendet.

Sie müssen also nur beide Funktionen zusammen verwenden:

if ( is_page() && !is_page_template() ) {
  // your code
}
1
t-jam

Alte Frage, aber eine interessante.

Im Allgemeinen ist es ungewöhnlich, in WordPress nach template zu suchen. Die Vorlage ist das Ergebnis der Hauptabfrage, die ausgeführt wird und den Anforderungskontext einrichtet.

Wenn nötig, würde ich wahrscheinlich am Anfang von page.php irgendwie ein Flag setzen, zum Beispiel eine Konstante dafür deklarieren, um meinen eigenen Kontext dafür zu haben.

Insgesamt denke ich jedoch, dass jede Logik, die eine solche Bewegung erfordert, als an die allgemeineren Mechaniken und Bedingungen angepasst angesehen werden sollte.

1
Rarst

Eigentlich ist es sehr einfach. Benutz einfach:

is_page_template ()

Wenn es true zurückgibt, wird page.php nicht verwendet und umgekehrt :)

0
Assaf Katz
$bulkitnt_custom_page_control = is_page_template( 'custom-page.php' );

    if( $bulkitnt_custom_page_control != true ){
        do_action('bulkitnt_header_action');
    }
0
NineTheme Faruk