Quiero buscar una plantilla adecuada en la carpeta del tema antes de volver al archivo en mi directorio de complementos. Aquí está mi código:
add_filter ('template_include', 'sermon_template_include'); función 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')) volver TEMPLATEDIR. '/archive-wpfc_sermon.php'; regresar dirname (__ ARCHIVO__). '/views/archive-wpfc_sermon.php'; más: if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) volver TEMPLATEDIR. '/single-wpfc_sermon.php'; regresar dirname (__ ARCHIVO__). '/views/single-wpfc_sermon.php'; terminara si; } devolver $ plantilla; }
El problema es que no funciona. :-) Siempre selecciona el archivo en mi carpeta de complementos. ¿Alguna idea de qué hacer? He intentado muchas variaciones, ¡pero parece que no puedo hacer que nada funcione! ¡Gracias por adelantado! Jack
EDITAR
Espero que archive-wpfc_sermon.php sea devuelto desde la carpeta del tema si existe. Sin embargo, el archivo de mi complemento siempre se devuelve. ¡Gracias por tu ayuda! Esto es de mi complemento Sermon Manager disponible en el repositorio.
Respuestas:
Entonces, no estoy seguro exactamente de qué está causando el problema, pero puede intentar lo siguiente:
dirname(__FILE__)
conplugin_dir_path( __FILE__ )
TEMPLATEDIR
conget_stylesheet_directory()
Es posible que el problema provenga de hacer referencia a las constantes directamente.
fuente
No estoy seguro de si esto funcionará para usted, pero vale la pena intentarlo. Lo uso todo el tiempo para mis tipos de publicaciones personalizadas cuando requieren una plantilla especial.
Todo lo que tiene que hacer es agregar este script en su archivo functions.php y colocar el archivo de plantilla en su directorio de temas.
Podría valer la pena intentarlo y no puede causar conflictos con su complemento. Sin embargo, no estoy seguro de eso.
Olvidé ... no olvides agregar la acción. :)
fuente