从另一个主题导入页眉模板

时间:2015-02-16 作者:Mac Luc

我有一个多站点WordPress项目,主站点使用Theme A 以及所有使用Theme B.

二者都Theme ATheme B 是子主题。

我想将头文件从主题A导入主题B,这样我可以在主题B的头之前显示该头文件-我如何正确实现该头文件?

我需要一种确保样式和功能的方法(bloginfo() 保留主题A的等)。

2 个回复
最合适的回答,由SO网友:David Gard 整理而成

正如您现在所述,主题A和主题B都已经是子主题,也许您可以尝试将其添加到funcions.php 主题B中的文件-

add_action(\'wp_enqueue_scripts\', \'enqueue_front_scripts\');
function enqueue_front_scripts(){

    /** Switch to the parent blog */
    switch_to_blog(1);  // You may need to change the ID, I don\'t know what ID you main site has
    
    /** Grab the path of the parents \'header.php\' file */
    $main_header_style_path =  get_stylesheet_directory_uri() . \'/header.css\';

    /** Restore the current blog */
    restore_current_blog();
    
    /** Enqueue the main header styling */
    wp_enqueue_style(\'main-header\', $main_header_style_path);
    
}

function get_main_header(){

    /** Switch to the parent blog */
    switch_to_blog(1);  // You may need to change the ID, I don\'t know what ID you main site has

    /** Grab the path of the parents \'header.php\' file */
    $main_header_path =  get_stylesheet_directory_uri() . \'/header.php\';

    /** Output the main header */
    require_once($main_header_path);

    /** Restore the current blog */
    restore_current_blog(); // Don\'t restore until after you have included the header, otherwise you \'get_blogino()\', etc. calls will reference Theme B
    
}
然后要包含这两个头文件,您可以这样做(注意,两个主题中的头文件只需调用header.php) -

get_main_header();
get_header();
我建议你读一下Function Reference for switch_to_blog() 了解更多信息。

更新

我忘了提到你还需要将你的标题样式与它自己的分开header.css 在主题A中归档,然后在主题A和主题B中将其排队。

我已经更新了我的代码示例来反映这一点。

SO网友:David Gard

你可以把主题B变成aChild Theme 主题A,然后创建header-b.php 在主题B(与header.php相反)中,在调用

get_header();
require_once("header-b.php")
为了确保您的所有造型都是从家长那里继承下来的,请在functions.php 主题B文件-

add_action(\'wp_enqueue_scripts\', \'my_front_scripts\');
function my_front_scripts(){

    wp_enqueue_style(\'parent-style\', get_template_directory_uri() . \'/style.css\');

}
如果您真的只想使用标题样式,那么在它自己的CSS文件中创建它可能是值得的(header.css) 很明显,你也需要在主题A中排队。

结束

相关推荐

Taxonomy Templates

我不太明白如何链接到我的分类法模板。我需要做一个临时页面并从那里查询我的条款吗?我当前正在使用分类层次结构:Taxonomy$labels = array( \'name\' => __( \'Product Categories\' ), \'singular_name\' => __( \'Product Category\' ), \'search_items\' =>