Ich möchte im Themenordner nach einer geeigneten Vorlage suchen, bevor ich auf die Datei in meinem Plugin-Verzeichnis zurückgreife. Hier ist mein Code:
add_filter ('template_include', 'sermon_template_include'); Funktion sermon_template_include ($ template) { if (get_query_var ('post_type') == 'wpfc_sermon') { if (is_archive () || is_search ()): if (file_exists (TEMPLATEDIR. '/archive-wpfc_sermon.php')) TEMPLATEDIR zurückgeben. '/archive-wpfc_sermon.php'; Rückgabeverzeichnis (__ FILE__). '/views/archive-wpfc_sermon.php'; sonst: if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) TEMPLATEDIR zurückgeben. '/single-wpfc_sermon.php'; Rückgabeverzeichnis (__ FILE__). '/views/single-wpfc_sermon.php'; endif; }} $ template zurückgeben; }}
Das Problem ist, es funktioniert nicht! :-) Es wählt immer die Datei in meinem Plugin-Ordner aus. Irgendeine Idee was zu tun ist? Ich habe viele Variationen ausprobiert, aber ich kann anscheinend nichts zum Laufen bringen! Danke im Voraus! Jack
BEARBEITEN
Ich erwarte, dass die Datei archive-wpfc_sermon.php aus dem Themenordner zurückgegeben wird, falls vorhanden. Die Datei von meinem Plugin wird jedoch immer zurückgegeben. Danke für Ihre Hilfe! Dies ist von meinem Sermon Manager-Plugin, das im Repository verfügbar ist.
Antworten:
Ich bin mir also nicht sicher, was genau das Problem verursacht, aber Sie könnten Folgendes versuchen:
dirname(__FILE__)
durchplugin_dir_path( __FILE__ )
TEMPLATEDIR
durchget_stylesheet_directory()
Es ist möglich , dass das Problem herkommt direkt die Konstanten verweisen.
quelle
Ich bin nicht sicher, ob dies für Sie funktionieren wird, aber es ist einen Versuch wert. Ich verwende dies ständig für meine benutzerdefinierten Beitragstypen, wenn sie eine spezielle Vorlage erfordern.
Alles, was Sie tun müssen, ist, dieses Skript in Ihre Datei functions.php einzufügen und die Vorlagendatei in Ihrem Themenverzeichnis abzulegen.
Dies könnte einen Versuch wert sein und möglicherweise keinen Konflikt mit Ihrem Plugin verursachen. Da bin ich mir jedoch nicht sicher.
Ich habe vergessen ... vergiss nicht, die Aktion hinzuzufügen. :) :)
quelle