Routing eines benutzerdefinierten PHP auf WordPress

Ich bin ein Laravel-Entwickler, der WordPress lernt. Ich habe etwas PHP-Code geschrieben, der einige Tabellen und einige HTML- und einige Formulare anzeigt. Zur Zeit benötige ich die Datei auf der Indexseite, um sie anzuzeigen. Ich möchte das ändern und nur ein Menü auf der Indexseite mit Links zu meinen erstellten Dateien hinzufügen. Jetzt möchte ich die Datei routen, also wenn ich ihre URL schreibe, sehe ich die Seite von dieser Datei. zB mywpsite.com/mygetform Wie mache ich das?

Solutions Collecting From Web of "Routing eines benutzerdefinierten PHP auf WordPress"

Wenn Sie von einem Laravel-Hintergrund kommen, werden Sie WordPress-Routing hassen.

Für unsere hoch funktionierenden WordPress-Websites musste ich eine ganze Reihe von Routing-Workarounds auf Laravel-ise-Routen schreiben, und es ist definitiv nicht “The WordPress Way”.

Es gibt keine ordentliche WordPress-Möglichkeit, Routen im Code hinzuzufügen. Am besten nutzen Sie das Standard-Routing, indem Sie eine Seite mit der gewünschten URL erstellen und anschließend eine benutzerdefinierte Seitenvorlage verwenden.

Hier ist wie.

Ich gehe davon aus, dass Sie die Kontrolle über Ihr Thema haben und es sich hier befindet: yoursite/wp-content/themes/your-theme

Fügen Sie eine neue Datei hinzu:

 yoursite/wp-content/themes/your-theme/mygetform.php 

Fügen Sie WordPress-Magie an den Anfang dieser Datei hinzu:

 < ?php /** * Template Name: Custom Page - My Get Form * Description: Here's my custom page. */ /* include your template header here, if you need/want it. */ /* insert your custom code here */ /* include your template footer here, if you need/want it. */ 

Gehen Sie nun auf yoursite.com/wp-admin und navigieren Sie zu Seiten> Seite hinzufügen .

In Ihrer Metabox für die Seitenattribute (die normalerweise irgendwo auf der rechten Seite versteckt ist) können Sie jetzt aus der Dropdown-Liste Vorlage " Benutzerdefinierte Seite - Mein Formular " auswählen.

Dadurch wird nun alles PHP ausgeführt, das Sie in diese Datei eingefügt haben (oder eingeschlossen, usw.).

Wenn Sie Formulare und Zeug haben, könnten Sie es auch in diese Datei aufnehmen, und das würde funktionieren. Die meisten WordPress-Möglichkeiten zur Bearbeitung von GET / POST-Formularen bestehen in der Verwendung von admin-post.php, die in diesem Artikel am besten dokumentiert ist .

Ich stimme den Kommentaren zu, kann aber trotzdem eine Antwort für jemanden geben, der aus einem Ort von Raffinesse kommt und versucht zu lernen.

Eine bevorzugte Methode in den meisten Fällen der realen Welt wäre es, die entsprechende Vorlagendatei zu öffnen, die als äquivalent zu index.php (im Hauptverzeichnis) fungiert, was von Ihrem Thema (entsprechend der Hierarchie ) bestimmt wird: höchstwahrscheinlich entweder nach Hause .php oder index.php und möglicherweise front-page.php, abhängig vom jeweiligen Thema und den allgemeinen Einstellungen. Diese Template-Dateien befinden sich im Hauptverzeichnis des aktiven Themes (in wp-content / themes /).

Da die Frage impliziert, dass die neue “Index” -Seite keinen anderen Inhalt haben wird, könnten Sie theoretisch alles, was Sie nicht wollen, im endgültigen HTML löschen oder von Kopfzeile zu Fußzeile verstehen und es durch Code ersetzen, aber höchstwahrscheinlich (Warum sollten Sie WordPress sonst benutzen?), Sie wollen fast alles außer den Dingen zwischen if (have_posts ()) und dem zugehörigen endif, falls vorhanden, behalten. (“The Loop”, mit anderen Worten.)

Darüber hinaus können Sie jetzt auch damit beginnen, untergeordnete Themen zu erstellen und dort die Änderungen vorzunehmen.

Eine andere Alternative wird wahrscheinlich sein, den Code über einen Shortcode oder eine andere Methode hinzuzufügen, die eine benutzerdefinierte function oder möglicherweise ein Plugin beinhaltet, möglicherweise zu einer Seite, die als die Homepage eingestellt ist.

Da es WordPress ist, gibt es zusätzliche Alternativen …