如何在子主题中为小部件添加一些额外的边栏位置。我遇到的困难是,父主题使用了一些非常粗糙的设置来定义当前的侧栏。
我想在我的站点标题中添加一个侧栏区域,在主模板中添加另一个侧栏区域。
父主题的功能。php文件以以下内容开头:
<?php
add_action( \'after_setup_theme\', \'et_setup_theme\' );
if ( ! function_exists( \'et_setup_theme\' ) ){
function et_setup_theme(){
global $themename, $shortname;
$themename = "Chameleon";
$shortname = "chameleon";
require_once(TEMPLATEPATH . \'/epanel/custom_functions.php\');
require_once(TEMPLATEPATH . \'/includes/functions/comments.php\');
require_once(TEMPLATEPATH . \'/includes/functions/sidebars.php\');
load_theme_textdomain(\'Chameleon\',get_template_directory().\'/lang\');
require_once(TEMPLATEPATH . \'/epanel/options_chameleon.php\');
require_once(TEMPLATEPATH . \'/epanel/core_functions.php\');
require_once(TEMPLATEPATH . \'/epanel/post_thumbnails_chameleon.php\');
include(TEMPLATEPATH . \'/includes/widgets.php\');
add_action( \'wp_enqueue_scripts\', \'et_add_responsive_shortcodes_css\', 11 );
add_action( \'pre_get_posts\', \'et_home_posts_query\' );
add_action( \'et_epanel_changing_options\', \'et_delete_featured_ids_cache\' );
add_action( \'delete_post\', \'et_delete_featured_ids_cache\' );
add_action( \'save_post\', \'et_delete_featured_ids_cache\' );
}
}
其中“require\\u once(TEMPLATEPATH./includes/functions/sidebars.php”)是此文件中对侧栏的唯一引用。
那么边栏。includes目录中的php文件包含以下内容:
<?php
if ( function_exists(\'register_sidebar\') ) {
register_sidebar(array(
\'name\' => \'Sidebar\',
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</div> <!-- end .widget -->\',
\'before_title\' => \'<h3 class="title">\',
\'after_title\' => \'</h3>\',
));
register_sidebar(array(
\'name\' => \'Footer\',
\'before_widget\' => \'<div id="%1$s" class="footer-widget %2$s">\',
\'after_widget\' => \'</div> <!-- end .footer-widget -->\',
\'before_title\' => \'<h4 class="widgettitle">\',
\'after_title\' => \'</h4>\',
));
register_sidebar(array(
\'name\' => \'Homepage\',
\'before_widget\' => \'<div id="%1$s" class="main-widget %2$s">\',
\'after_widget\' => \'</div> <!-- end .main-widget -->\',
\'before_title\' => \'<h3 class="title">\',
\'after_title\' => \'</h3>\',
));
}
?>
有一个侧边栏。主题根目录中的php文件,其中包含以下内容:
<div id="sidebar">
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'Sidebar\') ) : ?>
<?php endif; ?>
</div> <!-- end #sidebar -->
因此,让我们(现在)在主模板中添加一个新的侧栏区域。。。家。php模板(我的子主题文件夹中有一个修改过的副本)包含以下对侧栏的引用:
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'Homepage\') ) : ?>
<?php endif; ?>
在这个模板的代码结束之前。。。
<?php get_sidebar(); ?>
“我的主题”文件夹目录结构如下所示:
mywebsiteroot>wp内容>主题>变色龙>包括|主页。php
mywebsiteroot>wp内容>主题>变色龙>包含|函数。php
mywebsiteroot>wp内容>主题>变色龙>包括|侧边栏。php
mywebsiteroot>wp内容>主题>变色龙>包括|风格。css
mywebsiteroot>wp内容>主题>变色龙>包含>功能>侧栏。php
mywebsiteroot>wp内容>主题>变色龙>包含>css>其他样式表。。。
mywebsiteroot>wp内容>主题>lppscustom |主页。php
mywebsiteroot>wp内容>主题>lppscustom |标题。php
mywebsiteroot>wp内容>主题>lppscustom |页脚。php
mywebsiteroot>wp内容>主题>lppscustom |样式。css
和这就是我被困的地方。我知道你可以有自己的自定义函数。php和侧栏。子主题文件夹中的php文件,但如何构造它们?是否必须包含父主题文件中的所有代码?如果是这样,我如何修改代码,使子目录的任何引用都是相对的?如果没有,我如何让它加载父主题的函数文件和侧边栏文件以及自定义文件?
任何帮助都将不胜感激。