Solución:
Puedes usar el theme_page_templates
filtrar para agregar plantillas a la lista desplegable de plantillas de página como esta:
function wpse255804_add_page_template ($templates) {
$templates['my-custom-template.php'] = 'My Template';
return $templates;
}
add_filter ('theme_page_templates', 'wpse255804_add_page_template');
Ahora WP estará buscando my-custom-template.php
en el directorio de temas, por lo que tendrá que redirigirlo a su directorio de complementos utilizando el page_template
filtrar así:
function wpse255804_redirect_page_template ($template) {
if ('my-custom-template.php' == basename ($template))
$template = WP_PLUGIN_DIR . '/mypluginname/my-custom-template.php';
return $template;
}
add_filter ('page_template', 'wpse255804_redirect_page_template');
Lea más sobre esto aquí: Agregue una página de plantilla personalizada mediante programación
Esta es una combinación de la respuesta anterior y los comentarios anteriores que terminaron funcionando para mí.
La función para agregar el complemento a la lista de plantillas disponibles:
function wpse255804_add_page_template ($templates) {
$templates['my-custom-template.php'] = 'My Template';
return $templates;
}
add_filter ('theme_page_templates', 'wpse255804_add_page_template');
La función para apuntar la plantilla al directorio apropiado dentro del complemento:
function wpse255804_redirect_page_template ($template) {
$post = get_post();
$page_template = get_post_meta( $post->ID, '_wp_page_template', true );
if ('my-custom-template.php' == basename ($page_template))
$template = WP_PLUGIN_DIR . '/mypluginname/my-custom-template.php';
return $template;
}
add_filter ('page_template', 'wpse255804_redirect_page_template');
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)