WordPress方式(推荐):
在插件中,使用WordPress
theme_file_path
过滤钩子以更改插件中的文件。在插件中使用以下代码:
add_filter( \'theme_file_path\', \'wpse_258026_modify_theme_include_file\', 20, 2 );
function wpse_258026_modify_theme_include_file( $path, $file = \'\' ) {
if( \'includes/example-file.php\' === $file ) {
// change path here as required
return plugin_dir_path( __FILE__ ) . \'includes/example-file.php\';
}
return $path;
}
然后,您可以使用
get_theme_file_path
函数,如下所示:
include get_theme_file_path( \'includes/example-file.php\' );
在这里,如果文件在插件的过滤器挂钩中匹配,那么将包括文件的插件版本,否则将包括主题版本。
同样,通过这种方式,即使插件被禁用,主题也将使用其自己的文件版本,而无需任何修改。
从插件控制页面模板:
如果您正在寻找从插件控制页面模板,那么您可以
check out this answer 看看怎么做。
PHP方式:
如果您包括
wp-content/theme/<your-theme>/includes/example-file.php
文件使用简单
include
使用呼叫
relative path 在页眉、页脚模板中,如下所示:
include \'includes/example-file.php\';
然后也可以用插件版本的
includes/example-file.php
使用PHP的文件
set_include_path()
作用
一般来说,为了包含具有相对路径的文件,PHP会在当前目录中查找该文件。但是,您可以对其进行操作,以便PHP首先在另一个路径中查找它。在这种情况下,请在插件的主PHP文件中使用以下PHP代码,将插件的目录包含到PHP的默认包含路径中:
set_include_path( plugin_dir_path( __FILE__ ) . PATH_SEPARATOR . get_include_path() );
之后,任何
include
相对路径位于
header.php
,
footer.php
PHP将首先在插件目录中查找文件。
然而,这种方法will not work 如果在页眉、页脚等中包含使用绝对路径的文件。