Als WordPress -Entwickler, der hochgepäckte Produkte für meine Kunden erstellt, stand ich immer wieder auf dasselbe Problem, als ich versuchte, PHP -Skripte im WordPress -Framework zu erstellen. Ich liebe es, die integrierte Funktionalität von WordPress zu verwenden, aber ich bin immer wieder auf dieselben Fehlermeldungen gestoßen: "Rufen Sie bei undefined Methode ..." oder "versäumt, Stream zu öffnen".
Anschließend suchen Sie auf der Suche nach den richtigen Dateien, die Sie je nach Ihren Anforderungen einbeziehen, erfordern, include_once oder forder_once einschließen, erfordern, einschließen oder fordert. Sobald Sie die richtige Datei gefunden haben, normalerweise ein PHP-Dokument im Ordner WP-Includes, müssen Sie es zu Beginn Ihres Skripts einbeziehen/verlangen-oft nur, um einen weiteren „Anruf bei undefinierter Methode“ zu finden… “.
So sparen Sie Zeit und können Sie mit dem Erstellen von Code
nun erstellen lassen
, nicht nach Stunden (oder Tagen) des Googelns einer Lösung, ich habe ein einfaches Skript erstellt, mit dem ich alle meine benutzerdefinierten Dateien starte. Es behandelt alle richtigen Dateien, die ich für 99% meiner Entwicklung benötige.
Vorbehalt
Ich empfehle dies nur, dies zu verwenden, während Sie Ihr Plugin, Ihre Themen oder Skripte entwickeln und später, bevor Sie zur Produktion gehen, herausfinden, welche Dateien Sie tatsächlich benötigen. Ich mache
nicht empfehle, dass Sie dieses Skript ständig ausgeführt werden, da es unnötige Anrufe für Dateien macht, die Sie wahrscheinlich nicht benötigen.
Ich werde Sie durch dieses Skript führen, damit Sie sehen können, was ich tue und warum. Dies kann auch später als Referenzentol für Sie funktionieren.
Vergessen Sie Abspath - Machen Sie Ihren eigenen Weg
Ich mag es immer, den Abspath zu definieren, aber es wird mit einigen Skripten und WordPress -Installationen getroffen oder verpasst. Ich habe das einfache
if verwendet
Testen Sie, ob der Abspat definiert ist oder nicht, aber das funktioniert auch nicht immer:
[SourceCode Language = ”PHP”]
/ * Hinweis: Das mache ich nicht mehr */
// den Abspath definieren
if (! definiert („Abspath“)}}
Define ("Abspath", DirName (___ Datei___). "/");
}[/Sourcecode]
Stattdessen erstelle ich meinen eigenen Weg zu meiner WordPress -Installation, die weitaus stabiler ist:
[SourceCode Language = ”PHP”]
$ location = $ _server ['document_root'];
include ($ location. ’/wp-config.php’);
include ($ location. '/wp-load.php');
inklusive ($ location. '/wp-includes/pluggable.php');
[/Sourcecode]
Dies setzt voraus, dass Ihre WordPress -Installation im Root Ihrer Website, d. H. www.yoursite.com
Wenn dies nicht der Fall ist, fügen Sie einfach die Zeichenfolge zu Ihrer $ -Sort -Variablen wie folgt hinzu:
[SourceCode Language = ”PHP”]
$ location = $ _server ['document_root']. "/Your-wp-Installation";
[/Sourcecode]
Die großen drei
Nach meiner Erfahrung gibt es drei Dateien, die alle meine Probleme verursachen, wenn es darum geht, meine Skripte einzurichten. Ich nenne diese meine "Big Three", denn sobald ich sie einbezogen oder verlangt, verschwinden die meisten Probleme, wenn es um die Fehler "Anruf zu undefined Method" geht. Sie sind:
- wp-config.php
- pluggable.php
- wp-load.php
Sobald Sie diese haben, werden Sie feststellen, dass die meisten Ihrer Fehler verschwinden.
[SourceCode Language = ”PHP”]
// die großen drei bekommen
inklusive (Abspath. "WP-config.php");
inklusive (Abspath. "WP-load.php");
inklusive (Abspath. "WP-includes/Pluggable.php");
[/Sourcecode]
global $ wpdb
Eine weitere hilfreiche Sache ist, sicherzustellen, dass Ihr $ WPDB eine globale Variable ist. Auf diese Weise können alle Funktionen, die Sie erstellen, auf die WordPress -Datenbankabfragefunktionen zugreifen. Dies kann ein großer Zeitretter sein.
Da Sie die Dateien wp-config.php und wp-db.php aufgenommen haben, sollten Sie keine Probleme haben, $ wpdb ordnungsgemäß zu funktionieren, aber ich möchte trotzdem einen
-Test ausführen, um zuerst zu überprüfen:
[SourceCode Language = ”PHP”]
// die großen vier bekommen
global $ wpdb;
if (! isset ($ wpdb))
{
include ($ location. ’/wp-config.php’);
inklusive ($ location. "wp-includes/wp-db.php");
}[/Sourcecode]
testen Sie das Skript
Wenn Sie mit einer frischen Installation von WordPress beginnen, haben Sie nur einen Administratorbenutzer. Es macht also keinen Sinn, eine Verbindung zur WordPress -Datenbank herzustellen und Benutzer abzufragen. Ich habe diesen einfachen Test erstellt, um festzustellen, ob wir uns ordnungsgemäß verbinden. In diesem Fall sehen Sie Ihren Namen und Ihre E -Mail -Adresse in einer Tabelle mit WordPress registriert:
[SourceCode Language = ”PHP”]
/*
Die obigen Tests einbeziehen Aussagen arbeiten von
Auflistung aller Administratoren und ihrer E -Mail
Adressen in einer Tabelle.
*/
// Test starten
$ args = array (// Die Abfrage einrichten, um nur Administratoren zu bekommen
"Rolle" => "Administrator",
"Felder" => "All_with_meta"
);
$ query = get_users ($ args); // Verwenden Sie den Anruf get_users
// Die Tabelle einrichten
echo ' Schöner Name | E -Mail |
tr > ';
// Machen Sie für jede der Administratoren eine Tabellenzeile
foreach ($ query als $ query) {
echo "". $ query-> user_nicename. " | user_email. ""> ". $ query-> user_email. " | ";
} // End foreach
echo "
"; // das Tischetikett schließen
// Ende Test - kommentieren oder löschen von hier zum obigen "Starttest"
[/Sourcecode]
Wenn der Test funktioniert und Sie Ihren Namen und Ihre E -Mail -Adresse sehen, löschen Sie einfach unseren Kommentar das Testskript und beginnen Sie mit dem Codieren!
Sie können diese PHP -Datei überall in den WordPress -Ordnern fallen lassen und sie funktioniert. Für die ersten Tests und Programmierung kann dieses Skript Ihnen also eine Menge Zeit sparen, die sonst aufgewendet wurde, um grundlegende technische Probleme zu beheben.
Vielleicht möchten Sie auch einige Detailarbeiten durchführen, sobald Ihre Funktionen ordnungsgemäß funktionieren und nur die unbedingt erforderlichen Dateien einbeziehen. Wenn Sie beispielsweise nicht die Datei wp-config.php einfügen müssen, tun Sie dies nicht! Kommentieren Sie einfach den Code, Zeile für Zeile und prüfen Sie, ob er ordnungsgemäß funktioniert. Behalten Sie, was Sie brauchen, verlieren Sie den Rest.
Hoffentlich sparen Sie eine Reihe von Zeit und können Sie sich auf das Codieren konzentrieren und nicht auf die grundlegende Zuordnung der erforderlichen Dateien für die WordPress -Entwicklung.
Hier ist das komplette Skript als einfache Referenz. Kopieren Sie einfach, speichern Sie die Datei, wo immer es benötigt wird, und lassen Sie sich Spaß machen, die Arbeit zu erledigen:
[SourceCode Language = ”PHP”]
Php
/* Justyns Magie einschließlich
Angenommen, Sie verwenden den Stammordner Ihres Servers für Ihre
WordPress installieren. Wenn nicht, fügen Sie einfach den Unterordner hinzu, wo für für
WordPress, das Sie verwenden.
Fügen Sie beispielsweise den Unterordner zur Variablen $ Standort hinzu:
$ location = $ _server ['document_root']. "/Ihr Subsmolder";
*/
$ location = $ _server ['document_root'];
include ($ location. ’/wp-config.php’);
include ($ location. '/wp-load.php');
inklusive ($ location. '/wp-includes/pluggable.php');
global $ wpdb;
if (! isset ($ wpdb))
{
include ($ location. ’/wp-config.php’);
inklusive ($ location. '/wp-includes/wp-db.php');
}/*
Die obigen Tests einbeziehen Aussagen arbeiten von
Auflistung aller Administratoren und ihrer E -Mail
Adressen in einer Tabelle.
*/
// Test starten
$ args = array (// Die Abfrage einrichten, um nur Administratoren zu bekommen
"Rolle" => "Administrator",
"Felder" => "All_with_meta"
);
$ query = get_users ($ args); // Verwenden Sie den Anruf get_users
// Die Tabelle einrichten
echo ' Schöner Name | E -Mail |
tr > ';
// Machen Sie für jede der Administratoren eine Tabellenzeile
foreach ($ query als $ query) {
echo "". $ query-> user_nicename. " | user_email. ""> ". $ query-> user_email. " | ";
} // End foreach
echo "
"; // das Tischetikett schließen
// Ende Test - kommentieren oder löschen von hier zum obigen "Starttest"
?>
[/Sourcecode]
Möchten Sie etwas tiefer in PHP eintauchen? Schauen Sie sich unsere Partner -Website phpmaster.com an.
häufig gestellte Fragen (FAQs) zu WordPress enthalten/erfordern Skript
Was ist der Unterschied zwischen Include und Forderung in WordPress? Der Hauptunterschied liegt darin, wie sie mit dem Versagen umgehen. Wenn die Datei nicht gefunden wird, wird eine Warnung ausgestrahlt, lassen jedoch das Skript fortgesetzt, während die Forderung einen tödlichen Fehler verursacht und das Skript anhält. Verwenden Sie daher erforderlich, wenn die Datei erforderlich ist, damit die Anwendung ausgeführt wird, und verwenden Sie integriert, wenn die Datei nicht obligatorisch ist. > Das Skript include/fordere kann verwendet werden, um die Sicherheit Ihrer WordPress-Site durch Einbeziehung von PHP-Dateien im Zusammenhang mit Sicherheitsgründen zu verbessern. Beispielsweise können Sie eine Datei einfügen, die Funktionen für die Bereinigung von Benutzereingaben, Überprüfung der Benutzerberechtigungen oder zur Verhinderung von SQL -Injektionsangriffen enthalten. Stellen Sie immer sicher, dass der Pfad zur enthaltenen Datei korrekt und sicher ist, um Schwachstellen für Dateieneinschluss zu verhindern. funktioniert nicht wie erwartet. Dies kann auf einen Syntaxfehler, falsche Datenbankanmeldeinformationen oder ein Problem mit dem Datenbankserver zurückzuführen sein. Stellen Sie sicher, dass Sie die WP-load.php-Datei zu Beginn Ihres Skripts aufgenommen haben, um die WPDB-Klasse zu verwenden. Überprüfen Sie außerdem Ihre SQL -Abfrage auf Fehler und stellen Sie sicher, dass sie ordnungsgemäß vorbereitet ist, um SQL -Injektionsangriffe zu verhindern. WordPress, der den absoluten Weg zum WordPress -Verzeichnis hält. Es wird häufig in Einschlüsse oder verlangen Anweisungen verwendet, um Dateien aus dem WordPress -Verzeichnis einzuschließen. Um es zu verwenden, bereiten Sie Abspath einfach auf den relativen Pfad der Datei vor. Beispielsweise benötigen (Abspath. "WP-config.php"); enthält die Datei wp-config.php.
Wie kann ich JavaScript zu WordPress ordnungsgemäß hinzufügen? Mit dieser Funktion können Sie eine JavaScript -Datei in die WordPress -Header oder -fußzeile aufnehmen, Abhängigkeiten angeben und die Versionierung der Datei steuern. Verwenden Sie immer wp_enqueue_script in der functions.php -Datei oder einem Plugin und nicht direkt im Header.php oder footer.php -Dateien.
Warum wird mein WPDB nicht geladen? Nicht geladen, es könnte an einer fehlenden globalen Erklärung in Ihrer Funktion zurückzuführen sein. Die WPDB -Klasse ist eine globale Variable in WordPress, daher müssen Sie sie als global deklarieren, bevor Sie sie in einer Funktion verwenden. Zum Beispiel global $ wpdb; Zu Beginn Ihrer Funktion sollte das Problem lösen. Verwenden Sie die Funktion WP_ENQUEUE_STYLE, nicht das Skript integrieren oder benötigen. Mit der Funktion WP_ENQUEUE_STYLE können Sie eine CSS -Datei in den WordPress -Header aufnehmen, Abhängigkeiten angeben und die Versionierung der Datei steuern. Verwenden Sie immer wp_enqueue_style in der functions.php -Datei oder einem Plugin und nicht direkt in der Header.php -Datei.
Nein, Sie können das Skript nicht einschließen oder verlangen, um eine PHP -Datei in einen WordPress -Beitrag aufzunehmen. WordPress -Beiträge unterstützen den PHP -Code aus Sicherheitsgründen nicht. Wenn Sie eine PHP -Datei in einen Beitrag einbeziehen müssen, sollten Sie einen Shortcode erstellen, der die Datei enthält und den Shortcode im Beitrag verwenden. Plugin in WordPress? Die Funktion plugin_dir_path gibt den absoluten Pfad zum Verzeichnis eines Plugins zurück. Include (plugin_dir_path (Datei). "MyFile.php"); Enthält die Datei myFile.php aus demselben Verzeichnis wie die aktuelle Datei? Aus einem Thema in WordPress können Sie die Funktion get_template_directory in Kombination mit dem Skript include oder fordert verwenden. Die Funktion get_template_directory gibt den absoluten Pfad zum Verzeichnis des aktuellen Themas zurück. Include (get_template_directory (). ’/MyFile.php’); Enthält die Datei myFile.php aus dem aktuellen Themenverzeichnis. Das obige ist der detaillierte Inhalt vonDas ultimative Einschluss/das Erfordernis des Skripts für WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!