Ich möchte eine benutzerdefinierte Seite für mein WordPress-Blog erstellen, die meinen PHP-Code darin ausführt und gleichzeitig Teil des gesamten CSS / Themas / Designs der Website bleibt.
Der PHP-Code verwendet APIs von Drittanbietern (daher muss ich andere PHP-Dateien einschließen).
Wie schaffe ich das?
NB: Ich habe keine spezielle Notwendigkeit, mit der WordPress-API zu interagieren. Abgesehen von bestimmten anderen PHP-Bibliotheken muss ich keine weiteren Abhängigkeiten im PHP-Code haben, den ich in eine WordPress-Seite aufnehmen möchte. Offensichtlich wäre jede Lösung, bei der die WordPress-API nicht erlernt werden musste, die beste.
Antworten:
Sie müssen nicht mit der API interagieren oder ein Plugin verwenden.
Duplizieren Sie zuerst
post.php
oderpage.php
in Ihrem Themenordner (unter/wp-content/themes/themename/
).Benennen Sie die neue Datei um in
templatename.php
(wobei der Vorlagenname das ist, was Sie als neue Vorlage bezeichnen möchten). Geben Sie oben in der neuen Datei Folgendes ein, um Ihre neue Vorlage zur Liste der verfügbaren Vorlagen hinzuzufügen:Sie können diese Datei (mit PHP) ändern, um andere Dateien oder was auch immer Sie benötigen einzuschließen.
Erstellen Sie dann eine neue Seite in Ihrem WordPress-Blog. Auf dem Seitenbearbeitungsbildschirm wird rechts im Widget " Attribute" eine Dropdown-Liste " Vorlage" angezeigt . Wählen Sie Ihre neue Vorlage aus und veröffentlichen Sie die Seite.
Ihre neue Seite verwendet den in definierten PHP-Code
templatename.php
Quelle: Erstellen benutzerdefinierter Seitenvorlagen für den globalen Gebrauch
quelle
Wenn Sie Ihre eigene .php-Datei erstellen und mit WordPress ohne 404-Header interagieren und Ihre aktuelle Permalink-Struktur beibehalten möchten, ist für diese eine Seite keine Vorlagendatei erforderlich .
Ich habe festgestellt, dass dieser Ansatz in Ihrer .php-Datei am besten funktioniert:
Danach können Sie einfach alle WordPress-Funktionen ausführen. Dies setzt auch voraus, dass sich Ihre .php-Datei im Stammverzeichnis Ihrer WordPress-Site befindet, auf der sich Ihre
wp-config.php
Datei befindet.Für mich ist dies eine unbezahlbare Entdeckung, da ich sie
require_once(dirname(__FILE__) . '/wp-blog-header.php');
am längsten verwendet habe, da WordPress Ihnen sogar sagt, dass dies der Ansatz ist, den Sie zum Integrieren von WordPress-Funktionen verwenden sollten, außer dass er 404 Header verursacht, was seltsam ist, dass sie es wünschen würden Sie diesen Ansatz zu verwenden. Integration von WordPress in Ihre WebsiteIch weiß, dass viele Leute diese Frage beantwortet haben, und sie hat bereits eine akzeptierte Antwort, aber hier ist ein guter Ansatz für eine .php-Datei im Stammverzeichnis Ihrer WordPress-Site (oder technisch überall, wo Sie auf Ihrer Site wollen), die Sie durchsuchen können zu und laden ohne 404 Header!
Update: Es gibt eine Möglichkeit,
wp-blog-header.php
ohne 404-Header zu verwenden . Dies erfordert jedoch, dass Sie die Header manuell hinzufügen. So etwas funktioniert im Stammverzeichnis Ihrer WordPress-Installation:Nur um Sie alle darüber auf dem Laufenden zu halten, wird für diesen Ansatz etwas weniger Code benötigt, aber es liegt an Ihnen, welchen Sie verwenden.
quelle
wp-activate.php
muss den 404-Header deaktivieren, indem sie$wp_query->is_404 = false
beim Aktivieren neuer Multisitesrequire( dirname( __FILE__ ) . '/wp-blog-header.php' );
oben auf dieser Seite festgelegt wird.wp-blog-header.php
unter codex.wordpress.org/Integrating_WordPress_with_Your_Website definierten Ansatz . Den Header 404 finden Sie in den Tools Ihres Browser-Inspektors.Wenn Sie wie ich sind, möchten Sie manchmal in der Lage sein, WordPress-Funktionen auf einer Seite zu referenzieren, die im CMS nicht vorhanden ist. Auf diese Weise bleibt es backend-spezifisch und kann vom Client nicht versehentlich gelöscht werden.
Dies ist eigentlich einfach, indem Sie die
wp-blog-header.php
Datei mit PHP einbindenrequire()
.Hier ist ein Beispiel, das eine Abfragezeichenfolge verwendet, um Facebook Open Graph (OG) -Daten für jeden Beitrag zu generieren .
Nehmen wir das Beispiel einer Verbindung , wie ,
http://example.com/yourfilename.php?1
wo1
ist die ID eines Post wir OG Daten für generieren möchten:Der Inhalt
yourfilename.php
befindet sich nun im WordPress-Stammverzeichnis:Da haben Sie es: Generierte Freigabemodelle für jeden Beitrag unter Verwendung des tatsächlichen Bildes, Auszugs und Titels des Beitrags!
Wir hätten eine spezielle Vorlage erstellen und die Permalink-Struktur bearbeiten können, um dies zu tun. Da diese jedoch nur für eine Seite benötigt wird und der Client sie nicht aus dem CMS löschen soll, schien dies die sauberere Option zu sein.
EDIT 2017: Bitte beachten Sie, dass dieser Ansatz jetzt veraltet ist
Informationen zu WordPress-Installationen ab 2016 finden Sie unter Wie kann ich WordPress eine PHP-Seite hinzufügen? Weitere Parameter müssen vor der Ausgabe Ihrer Seitendaten an den Browser berücksichtigt werden.
quelle
Das Erstellen der Vorlagenseite ist die richtige Antwort. Fügen Sie dies einfach zu der Seite hinzu, die Sie im Themenordner erstellt haben:
Um diesen Code auszuführen, müssen Sie "mytemplate" als Vorlage für die Seite im Backend auswählen .
Unter diesem Link finden Sie die korrekten Details https://developer.wordpress.org/themes/template-files-section/page-template-files/ .
quelle
Eine Antwort wurde nicht behandelt, wenn Sie eine PHP-Seite außerhalb des WordPress-Themas hinzufügen müssen. Das ist der Weg.
Sie müssen wp-load.php einschließen.
Dann können Sie jede WordPress-Funktion auf dieser Seite verwenden.
quelle
require_once('wp-load.php');
Erstellen Sie eine Seite, nennen Sie sie my-page.php und speichern Sie sie in Ihrem Themenverzeichnis. Bearbeiten Sie nun diese PHP-Datei und schreiben Sie die folgende Zeile oben auf die Seite
Schreiben Sie Ihren PHP-Code unter die benutzerdefinierte Seitendefinitionszeile. Sie können Ihre anderen WP-Vorlagenfunktionen in dieser Datei aufrufen.
Beginnen Sie wie
<?php require_once("header.php");?>
ODERWie auch immer Sie Ihre Kopf- und Fußzeile integrieren, um das Layout konsistent zu halten.
Da dies eine meiner Seiten ist, MÜSSEN Sie eine Seite aus dem WordPress-Admin-Bereich erstellen. Gehen Sie zu Admin => Seiten => Neu hinzufügen
Fügen Sie einen Seitentitel hinzu. Abhängig davon, wie Sie die benutzerdefinierte Seite codiert haben, können Sie auch einen Seitenkörper (Beschreibung) hinzufügen. Sie können die Beschreibung vollständig überspringen, wenn sie auf der benutzerdefinierten PHP-Seite geschrieben ist.
Wählen Sie auf der rechten Seite Vorlage aus. Wählen Sie "Meine benutzerdefinierte Seite" aus der Dropdown-Liste. Sie sind fertig! Gehen Sie zu dem von [WordPress] [1] erstellten Slug (Permalink) und sehen Sie sich die Seite an.
quelle
Der beste Weg , um PHP - Seiten in Wordpress hinzufügen
Page Template
imchild-theme
Ordner.So erstellen Sie
Page Template
in WordPress.Erstellen Sie eine Datei mit dem Namen
template-custom.php
und fügen Sie sie ein/wp-content/theme/my-theme/
.Für mehr Details
quelle
Sie sollten einen Blick in die Plugin-API von WordPress werfen.
Hier erfahren Sie, wie Sie verschiedene Teile der WordPress-Mechanik "einbinden" und "filtern", sodass Sie benutzerdefinierten PHP-Code praktisch überall und zu jeder Zeit ausführen können. Dieses Verknüpfen, Filtern und Erstellen von benutzerdefiniertem Code kann in Ihrer Datei functions.php in jedem Ihrer Themen erfolgen. Viel Spaß beim Codieren :)
quelle
Wenn Sie sich nicht mit der WordPress-API befassen möchten, ist Adams Antwort wirklich die beste.
Wenn Sie bereit wären, sich mit der API zu befassen, würde ich vorschlagen, sich in den "Template-Redirect" -Hook einzuhängen, mit dem Sie eine bestimmte URL oder Seite auf eine beliebige PHP-Datei verweisen können, während Sie weiterhin Zugriff auf WordPress haben.
quelle
Die allgemein akzeptierte Antwort von Adam Hopkinson ist keine vollautomatische Methode zum Erstellen einer Seite! Ein Benutzer muss manuell eine Seite im Backend von WordPress erstellen (im wp-admin-Dash). Das Problem dabei ist, dass ein gutes Plugin ein vollautomatisches Setup haben sollte. Es sollte nicht erforderlich sein, dass Clients Seiten manuell erstellen.
Einige der anderen allgemein akzeptierten Antworten beinhalten auch das Erstellen einer statischen Seite außerhalb von WordPress, die dann nur einen Teil der WordPress-Funktionalität enthält, um die thematische Kopf- und Fußzeile zu erreichen. Obwohl diese Methode in einigen Fällen funktioniert, kann dies die Integration dieser Seiten in WordPress sehr schwierig machen, ohne dass alle Funktionen enthalten sind.
Ich denke, der beste, vollautomatische Ansatz wäre, eine Seite mit zu erstellen
wp_insert_post
und in der Datenbank zu speichern. Ein Beispiel und eine großartige Diskussion darüber und wie man ein versehentliches Löschen der Seite durch einen Benutzer verhindert, finden Sie hier: WordPress-Seite automatisch erstellenEhrlich gesagt bin ich überrascht, dass dieser Ansatz noch nicht als Antwort auf diese beliebte Frage erwähnt wurde (er wurde seit 7 Jahren veröffentlicht).
quelle
Versuche dies:
quelle
Neben dem Erstellen einer benutzerdefinierten Vorlagendatei und dem Zuweisen dieser Vorlage zu einer Seite (wie im Beispiel in der akzeptierten Antwort) gibt es auch eine Möglichkeit mit der Namenskonvention für Vorlagen, die WordPress zum Laden von Vorlagen verwendet (Vorlagenhierarchie).
Erstellen Sie eine neue Seite und verwenden Sie den Slug dieser Seite für den Vorlagendateinamen (erstellen Sie eine Vorlagendatei mit dem Namen page- {slug} .php ). WordPress lädt automatisch die Vorlage, die dieser Regel entspricht.
quelle
Erstellen Sie einfach eine
page-mytitle.php
Datei im Ordner des aktuellen Themas und im Dashboard eine Seite "mytitle" .Wenn Sie dann die Seite über die URL aufrufen, wird die Seite-mytitle.php angezeigt. Sie müssen dieser PHP-Datei (
page-mytitle.php
) HTML, CSS, JavaScript, wp-loop usw. hinzufügen .quelle
quelle
quelle
Sie können Ihre Datei "newpage.php" nennen - legen Sie sie in Ihrem Themenverzeichnis in ab
wp-content
. Sie können daraus eine Seitenvorlage machen (siehe http://codex.wordpress.org/Pages ... ) oder sie in eine der PHP-Dateien in Ihrem Thema aufnehmen, z. B. header.php oder single.php.Erstellen Sie noch besser ein untergeordnetes Thema und fügen Sie es dort ein, sodass Sie Ihren Themencode in Ruhe lassen und es einfacher ist, ihn zu aktualisieren.
http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
quelle
Sie können die PHP-Seite auch direkt verwenden, um die PHP-Seite zu erstellen und mit vollem Pfad auszuführen.
Wie http: //localhost/path/filename.php
quelle