So erstellen Sie eine WordPress-Vorlage, ohne eine Seite zu verwenden

Ich bin mir nicht sicher, ob WordPress dafür gebaut wurde, aber das versuche ich zu erreichen:

  • Ich möchte eine bestimmte URL innerhalb von WordPress zugänglich machen, zum Beispiel www.example.com/some-template .
  • Diese spezifische URL sollte aus einer PHP-Datei bearbeitbar sein, Teil eines bestehenden WordPress-Themes, an dem ich gerade arbeite, so etwas wie some-template.php )
  • Das ist der knifflige Teil: Ich möchte nicht, dass WordPress-Benutzer diese Vorlage beim Bearbeiten einer Seite aus dem Dropdown-Menü für benutzerdefinierte Vorlagen sehen oder verwenden können. Ich möchte nicht, dass eine bestimmte Seite existiert, damit dies funktioniert. Diese Vorlage sollte ohne jede Seite funktionieren (ich bin nicht daran interessiert, eine Seite zu erstellen und auszublenden oder die Vorlage auszublenden).

Der Grund, warum ich das versuche, ist, dass ich eine bestimmte Vorlage haben möchte, die ein paar Seiten und Menüs aus WordPress zusammenfügt und eine Art “benutzerdefinierte Ansicht” erstellt, die alle paar Stunden auf eine andere Seite gezogen wird. Es ist alles Teil eines größeren Bildes (die Details sind nicht so wichtig).

Während der Suche habe ich nur herausgefunden, dass es möglich ist, benutzerdefinierte Vorlagen für mindestens eine Seite zu erstellen. Diese Seite muss jedoch in WordPress vorhanden sein, damit die Vorlage funktioniert.

Hat jemand eine Idee, wie man das erreicht?

Solutions Collecting From Web of "So erstellen Sie eine WordPress-Vorlage, ohne eine Seite zu verwenden"

Sie können die Aktion template_redirect :

 add_action( 'template_redirect', 'wpse131387_template_redirect' ); function wpse131387_template_redirect( ){ if ($_SERVER['REQUEST_URI'] == '/some-template') { global $wp_query; $wp_query->is_404 = false; status_header(200); include(dirname(__FILE__) . '/some-template.php'); exit(); } } 

Sie können es auf sehr einfache Weise tun, indem Sie Ihre Datei some-template.php in das Stammverzeichnis Ihrer WordPress-Installation stellen.

Wenn Sie dies zu Ihrem .htaccess www.mysite.com/some-template verwenden Sie die some-template.php für die URL www.mysite.com/some-template

 RewriteRule ^some-template$ ./some-template.php$1 

In Ihrer some-template.php laden Sie WordPress, einschließlich wp-load.php

 include('wp-load.php'); //all your custom goodies 

Jetzt haben Sie Zugriff auf alle WordPress-functionen, und Sie müssen keine Seite in der database haben.

Bitte beachten Sie, dass beim Erstellen einer Seite mit some-template möglicherweise ein Fehler auftritt, da die Seite aufgrund Ihrer benutzerdefinierten Datei nicht sichtbar ist.