如果您已经编写了插件,那么我建议您添加如下内容:
// Define these constants once in your main plugin init file
define( \'YOUR_PLUGIN_SLUG\', \'your-plugin-slug\' );
define( \'YOUR_PLUGIN_DIR\', plugin_dir_path( __FILE__ ) );
define( \'YOUR_PLUGIN_TEMPLATE_DIR\', trailingslashit( YOUR_PLUGIN_DIR ) . \'templates\' );
define( \'YOUR_PLUGIN_THEME_TEMPLATE_OVERRIDE_PATH_DIR\', trailingslashit( get_stylesheet_directory() . \'/\' . YOUR_PLUGIN_SLUG );
// Define a function to locate template files
function your_plugin_name_get_template_part_location( $part ) {
$part = $part \'.php\';
// Look in the user\'s theme first for the file
if ( file_exists( YOUR_PLUGIN_THEME_TEMPLATE_OVERRIDE_PATH_DIR . $part ) ) {
$file = YOUR_PLUGIN_THEME_TEMPLATE_OVERRIDE_PATH_DIR . $part;
}
// Otherwise use the file from your plugin
else {
$file = YOUR_PLUGIN_TEMPLATE_DIR . $part;
}
}
首先,定义一些常量(在主插件初始化文件中执行一次),这些常量可能已经存在。
然后,该函数允许您调用文件(在我的示例中,模板文件/插件/插件名称/模板)。
例如,您可以使用
get_template_part(your_plugin_name_get_template_part_location(\'widget\'));
您的插件将首先查看用户的主题,以查看覆盖是否到位。
如果这不存在,那么它将在您的插件中查找。
当然,您可以根据自己的目录结构和需要对其进行修改。