get_page_template()
se puede anular a través del page_template
filtro. Si su complemento es un directorio con las plantillas como archivos en ellas, solo es cuestión de pasar los nombres de estos archivos. Si desea crearlos "sobre la marcha" (¿editarlos en el área de administración y guardarlos en la base de datos?), Puede escribirlos en un directorio de caché y consultarlos, o conectarlos template_redirect
y hacer algunas eval()
cosas locas .
Un ejemplo simple para un complemento que "redirige" a un archivo en el mismo directorio de complementos si cierto criterio es verdadero:
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;
}
Anular
get_page_template()
es solo un truco rápido. No permite que la plantilla se seleccione desde la pantalla de administración y la ficha de la página está codificada en el complemento, por lo que el usuario no tiene forma de saber de dónde viene la plantilla.La solución preferida sería seguir este tutorial que le permite registrar una plantilla de página en el back-end desde el complemento. Entonces funciona como cualquier otra plantilla.
fuente
Sí, es posible. Este complemento de ejemplo me pareció muy útil.
Otro enfoque que se me viene a la cabeza es utilizar la API del sistema de archivos WP para crear el archivo de plantilla para el tema. No estoy seguro de que sea el mejor enfoque, ¡pero estoy seguro de que funciona!
fuente
Ninguna de las respuestas anteriores funcionaba para la mía. Aquí uno donde puedes elegir tu plantilla en el administrador de Wordpress. Simplemente colóquelo en su archivo de complemento php principal y cámbielo
template-configurator.php
por el nombre de su plantillafuente