这个get_header()
功能是为主题而设计的。它通常先在子主题中查找头文件,然后在父主题中查找。您应该在主题目录下而不是在插件中创建自定义标题。
但如果您确实必须从插件加载头文件,那么您必须创建一个自定义函数。
以下是您可以做到这一点的方法。
创建文件头自定义。插件中的php:
<?php
/**
* PLUGIN_DIR/includes/header-custom.php
* Header file in plugin
*/
?><!DOCTYPE html>
<html class="no-js" <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( \'charset\' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<link rel="profile" href="https://gmpg.org/xfn/11">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
?>
创建自定义函数\\u get\\u header(),该函数将首先在插件中查找文件,然后查找子主题,然后查找父主题。根据需要更改以下函数中的值。e、 g.插件路径
function _get_header($name, $args = array()) {
$require_once = true;
$templates = array();
$name = (string) $name;
if (\'\' !== $name) {
$templates[] = "header-{$name}.php";
} else {
return false;
}
$templates[] = \'header.php\';
$located = \'\';
foreach ($templates as $template_name) {
if (!$template_name) {
continue;
}
if (file_exists(WP_PLUGIN_DIR . \'/PLUGIN_DIR/includes/\' . $template_name)) {
$located = WP_PLUGIN_DIR . \'/PLUGIN_DIR/includes/\' . $template_name;
break;
} elseif (file_exists(STYLESHEETPATH . \'/\' . $template_name)) {
$located = STYLESHEETPATH . \'/\' . $template_name;
break;
} elseif (file_exists(TEMPLATEPATH . \'/\' . $template_name)) {
$located = TEMPLATEPATH . \'/\' . $template_name;
break;
} elseif (file_exists(ABSPATH . WPINC . \'/theme-compat/\' . $template_name)) {
$located = ABSPATH . WPINC . \'/theme-compat/\' . $template_name;
break;
}
}
if (\'\' !== $located) {
load_template($located, $require_once, $args);
}
return $located;
}
然后在常规主题文件中,可以添加如下\\u get\\u header()函数:
// Check if plugin is active then load file from plugin
if(in_array(\'PLUGIN_DIR/PLUGIN.php\', apply_filters(\'active_plugins\', get_option(\'active_plugins\')))){
_get_header(\'custom\'); //loads header-custom.php from plugin
} else {
get_header();
}