Ich frage mich, ob es möglich ist, eine Vorlagendatei für eine bestimmte URL zu verwenden, ohne eine Seite für diese Vorlage erstellen zu müssen.
Das ist mein vereinfachtes Problem:
Ich habe in WP eine Seite mit Linkinhalten erstellt , die auf eine bestimmte URL mit nachfolgenden Formulardaten verweist: (mysite.com/retail/?a=test&b=1234) .
Ich möchte, dass diese URL (Einzelhandel) automatisch meine Vorlagendatei template-retail.php verwendet, die ich im untergeordneten Themenverzeichnis habe, ohne eine Seite mit dem Namen "Einzelhandel" erstellen und die Vorlagenseite von dort auswählen zu müssen. Die Datei template-retail.php enthält nur externen Inhalt, nichts von Wordpress.
Ist das möglich?
template_redirect
oder ein EndpunktAntworten:
Sie können sich nur die URL ansehen, die Datei laden und beenden.
Dies kann geschehen, wenn WordPress seine Umgebung geladen hat, zB auf
'init'
.Beachten Sie, dass eine echte Seite mit dem Zusatz "retail" niemals verwendet werden kann.
Dies ist ziemlich einfach, aber auch hartcodiert. Wenn Sie dies für eine einzelne Seite benötigen, ist dies in Ordnung. Wenn Sie mehr URLs steuern möchten, lesen Sie die in dieser Antwort vorgeschlagene Lösung .
quelle
var_dump($url_path);
sehen, wie es aussieht, und passen Sie den Code an. Dieser Wert hängt von Ihrer tatsächlichen URL ab. ZB für benutzerdefinierte Home-URL oder WP im Unterordner installiert kann unterschiedlich sein. @ Keat$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/');
$templatename = 'retail';
$pos = strpos($url_path, $templatename);
if ($pos !== false) {
Die
init
Aktion ist für das, was Sie erreichen möchten, nicht geeignet. Sie sollten stattdessen dentemplate_include
Filter verwenden. Sie können dies kombinierenget_query_var
, um die URL-Parameter abzurufen und zu überprüfen, welche Vorlage geladen werden muss. Hier sind die Links:Code:
quelle
Der WordPress-Weg dazu ist mit
page-templates
. https://developer.wordpress.org/themes/template-files-section/page-template-files/Sie benötigen nur einen Code für die WordPress-Vorlage. In Ihrem WordPress-Theme können Sie eine Seitenvorlage erstellen und in umbenennen
page-id.php
Diese bestimmte Seite nimmt sie automatisch auf und verwendet die Vorlage.
Wenn Ihre Seite beispielsweise die ID 5874 hat, wird die Vorlage als benannt
page-5784.php
Sie können die Vorlage auch basierend auf dem Seiten-Slug benennen. Wenn beispielsweise der Page Slug ist, lautet
hello-world
der Vorlagennamepage-hello-world.php
Siehe auch: - https://developer.wordpress.org/files/2014/10/template-hierarchy.png
quelle
@ shivanand-sharma Dies ist die perfekte und sauberere Methode ( https://developer.wordpress.org/themes/template-files-section/page-template-files/ ), um jede Seite wie jede andere in WordPress zu erstellen, und wenn Sie möchten Um deine Seite zu verstecken, benutze ich einfach das einfache und effektive Plugin ' https://wordpress.org/plugins/exclude-pages/ '
Ich muss sagen, dass ich eine URL brauchte, um POST oder GET zu meiner eigenen Seite zu machen und einige Sitzungsdaten 'WC () -> session' zu speichern, und dies löst dieses und andere Probleme, weil Sie ein Rückgrat von benutzerdefinierten haben können PHP-Code, einschließlich aller 'require (' wp-load ') etc' der gesamten WordPress-, Woocommerce- usw., um damit zu arbeiten, mysite.com/index.php/MYPAGE .....
Sie müssen nur:
Erstens: Erstellen Sie eine Datei in Ihrem Themenverzeichnis als Vorlage für die neue Seite, etwa "wp-content / themes / mytheme / customtemplate.php" (Kommentar ist wichtig, damit der "Vorlagenname" von Wordpress beobachtet werden kann):
Zweitens: Erstellen Sie eine Seite bei WordPress normalerweise über 'wp-admin'> Seiten (sagen wir einen Namen wie MYPAGE , oder Sie können den Slug nach Belieben ändern) und verlinken Sie natürlich die vorherige Vorlage als Vorlage für diese Seite, die Name ist 'WhateverName' im Abschnitt mit den Vorlagenattributen.
Öffnen wir also die neue Seite 'mysite.com/index.php/MYPAGE' und Sie werden sehen.
Extras: Lassen Sie uns Javascript- oder jquery-Funktionen im Einkaufswagen erstellen, alles, was Sie sich in HTML-Tags für Skripte vorstellen können, auschecken und Code wie diesen einfügen:
quelle