Hazlo lo más simple posible para los desarrolladores de temas. La mayoría no son programadores. Hay dos opciones muy simples:
add_theme_support () y get_theme_support ()
Proporcione un identificador y algunas opciones. Digamos que su identificador es drtanz_plugin
. El autor de un tema ahora podría agregar lo siguiente a functions.php
de su tema:
add_action( 'after_setup_theme', 'prefix_register_theme_support' );
function prefix_register_theme_support()
{
add_theme_support(
'drtanz_plugin',
array (
'template' => get_template_directory() . '/templates/drtanz_plugin.php',
'stylesheet' => FALSE
)
);
}
En tu complemento puedes verificar el soporte del tema ahora:
$plugin_options = array (
'template' => get_template_directory() . '/templates/drtanz_plugin.php',
'stylesheet' => plugins_url( 'default.css', __FILE__ ),
'show_comments' => TRUE
);
if ( $theme_options = get_theme_support( 'drtanz_plugin' ) )
$plugin_options = array_merge( $plugin_options, $theme_options );
El autor del tema no cambió el parámetro show_comments
, por lo que usa el valor predeterminado.
Pro: fácil de extender, realmente potente.
Contras: Puede que ya sea demasiado difícil para algunas personas.
Usar Locate_template ()
Hice eso en mi complemento Vista previa de la marcación rápida de T5 Opera . Solo verifica si hay una plantilla con un nombre dado en el tema e intenta obtener la ruta. Si no se encontró ninguna plantilla, use la suya.
$template = 'speed-dial.php';
$path = locate_template( array ( $template ) );
if ( '' != $path and file_exists( $path ) )
require $path;
else
require dirname( __FILE__ ) . "/$template";
Pro: Fácil de aprender. Solo asegúrate de que el nombre que usas sea único. Puede agregar *_theme_support
características más adelante si las necesita.
Con: En realidad es solo la plantilla, no hay características adicionales. Y no puedes cambiar el nombre de la plantilla más tarde, porque eso rompería las cosas.
Puedes combinar ambos enfoques, pero solo usaría uno. Es más fácil de aprender.