Chcę sprawdzić odpowiedni szablon w folderze motywu, zanim wrócę do pliku w moim katalogu wtyczek. Oto mój kod:
add_filter ('template_include', 'sermon_template_include'); funkcja 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')) zwróć TEMPLATEDIR. '/archive-wpfc_sermon.php'; zwróć nazwę katalogu (__ PLIK__). '/views/archive-wpfc_sermon.php'; inaczej: if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) zwróć TEMPLATEDIR. '/single-wpfc_sermon.php'; zwróć nazwę katalogu (__ PLIK__). '/views/single-wpfc_sermon.php'; endif; } zwróć szablon $; }
Problem w tym, że to nie działa! :-) Zawsze wybiera plik z mojego folderu wtyczek. Masz pomysł, co robić? Próbowałem wiele odmian, ale wydaje mi się, że nic nie działa! Z góry dziękuję! Jacek
EDYTOWAĆ
Oczekuję, że plik archive-wpfc_sermon.php zostanie zwrócony z folderu motywu, jeśli istnieje. Jednak plik z mojej wtyczki zawsze jest zwracany. Dzięki za pomoc! Pochodzi z mojej wtyczki Sermon Manager dostępnej w repozytorium.
Odpowiedzi:
Nie jestem więc pewien, co dokładnie powoduje problem, ale możesz spróbować wykonać następujące czynności:
dirname(__FILE__)
zplugin_dir_path( __FILE__ )
TEMPLATEDIR
zget_stylesheet_directory()
Jest możliwe , że problem wynika z odwoływania stałych bezpośrednio.
źródło
Nie jestem pewien, czy to zadziała, ale warto spróbować. Używam tego cały czas dla moich niestandardowych typów postów, gdy wymagają one specjalnego szablonu.
Wszystko, co musisz zrobić, to dodać ten skrypt do pliku functions.php i umieścić plik szablonu w katalogu motywów.
Może to być warte zastrzyku i nie może powodować konfliktu z wtyczką. Nie jestem jednak tego pewien.
Zapomniałem ... nie zapomnij dodać akcji. :)
źródło