2017-04-18 47 views
0

我想获得一个不同的侧边栏来加载一个特定的父页的子页面,而不使用插件或设置另一个模板文件。替换侧边栏为没有插件的子页面

这是我到目前为止有:

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'); 
} 

但我想知道如果我需要使用某种形式的过滤器,以取代被加载,而不是默认的侧边栏?不太确定这是否正确。

回答

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 --> 

然后,在您的页面的编辑和它的子页面中,将此模板设置为所需的模板。

+0

嗯,嗯,我试图设置它不使用另一个模板页面,因为这可能会弄乱父主题内的东西。但如果有的话,我可能必须这样做。 – ultraloveninja

+0

复制父主题页面模板的内容,然后替换所需的部分。你也可以取消注册默认的侧边栏并注册你的名字,但是这会在任何地方删除默认的侧边栏。 –

+0

对,我只想用新的边栏替换当前的边栏,并且只在特定的页面上。 – ultraloveninja

相关问题