让主题开发人员尽可能简单。大多数不是程序员。有两个非常简单的选项:
add\\u theme\\u support()和get\\u theme\\u support()
提供一个标识符和一些选项。假设您的标识符是
drtanz_plugin
. 主题作者现在可以在其主题中添加以下内容
functions.php
:
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
)
);
}
现在,您可以在插件中检查主题支持:
$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 );
主题作者没有更改
show_comments
参数,因此使用默认值。
优点:易于扩展,功能强大<缺点:对某些人来说可能已经太难了。
使用locate\\u template()
我在插件中做到了这一点
T5 Opera Speed Dial Preview. 只需检查主题中是否有具有给定名称的模板,然后尝试获取路径。如果找不到模板,请使用自己的模板。
$template = \'speed-dial.php\';
$path = locate_template( array ( $template ) );
if ( \'\' != $path and file_exists( $path ) )
require $path;
else
require dirname( __FILE__ ) . "/$template";
优点:易学。请确保您使用的名称是唯一的。您可以添加
*_theme_support
如果需要,请稍后提供功能<缺点:它实际上只是一个模板,没有其他功能。以后不能更改模板名称,因为这会破坏一切。
您可以将这两种方法结合起来,但我只会使用其中一种。它更容易学习。