我正在尝试在不使用插件或设置其他模板文件的情况下,在特定父级的子页面中加载不同的侧边栏。
这是我到目前为止所做的:
register_sidebars(1, array(
'name' => 'Other Sidebar',
'id' => "other-sidebar",
'before_widget' => '<li class="widget">',
'after_widget' => '</li>',
'before_title' => '<span class="widgettitle">',
'after_title' => '</span>'
));
if ( $post->post_parent == '1164' ) {
dynamic_sidebar( 'other-sidebar' );
}
但我想知道我是否需要使用某种过滤器来替换正在加载的默认侧边栏?不太确定这是否正确。
答案 0 :(得分:1)
由于您可以编辑主题(或子主题),因此您可以添加Page Template,使用您想要的自定义侧边栏覆盖当前页面模板。
<?php
/*
Template Name: Custom Sidebar Page // All versions
Template Post Type: page // 4.7+ only
*/
// Page code here with the sidebar you want...
?>
<aside id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( 'other-sidebar' ); ?>
</aside><!-- #secondary -->
然后,在您的页面及其子页面的编辑中,将此模板设置为您想要的模板。