get_page_template()
kann über den page_template
Filter überschrieben werden. Wenn Ihr Plugin ein Verzeichnis mit den Vorlagen als Dateien ist, müssen Sie nur die Namen dieser Dateien übergeben. Wenn Sie sie "on the fly" erstellen möchten (bearbeiten Sie sie im Admin-Bereich und speichern Sie sie in der Datenbank?), Möchten Sie sie möglicherweise in ein Cache-Verzeichnis schreiben und auf sie verweisen oder template_redirect
verrückte eval()
Dinge erledigen .
Ein einfaches Beispiel für ein Plugin, das zu einer Datei im selben Plugin-Verzeichnis "umleitet", wenn ein bestimmtes Kriterium erfüllt ist:
add_filter( 'page_template', 'wpa3396_page_template' );
function wpa3396_page_template( $page_template )
{
if ( is_page( 'my-custom-page-slug' ) ) {
$page_template = dirname( __FILE__ ) . '/custom-page-template.php';
}
return $page_template;
}
Überschreiben
get_page_template()
ist nur ein schneller Hack. Die Vorlage kann nicht auf dem Admin-Bildschirm ausgewählt werden, und der Page Slug ist fest in das Plug-In integriert, sodass der Benutzer nicht weiß, woher die Vorlage stammt.Die bevorzugte Lösung wäre, diesem Tutorial zu folgen , mit dem Sie eine Seitenvorlage im Back-End des Plug- Ins registrieren können. Dann funktioniert es wie jede andere Vorlage.
quelle
Ja, es ist möglich. Ich fand dieses Beispiel-Plugin sehr hilfreich.
Ein anderer Ansatz, der mir in den Sinn kommt, ist die Verwendung der WP-Dateisystem-API , um die Vorlagendatei für das Thema zu erstellen. Ich bin mir nicht sicher, ob es der beste Ansatz ist, aber ich bin mir sicher, dass es funktioniert!
quelle
Keine der vorherigen Antworten hat für mich funktioniert. Hier können Sie Ihre Vorlage in Wordpress Admin auswählen. Einfach in die Haupt-PHP-Plugin-Datei einfügen und
template-configurator.php
durch den Namen der Vorlage ändernquelle