我有一个functions.php文件,我在其中注册了所有侧边栏。
在sidebar.php文件中我有这个
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Home Page') ) : ?>
<?php endif; ?>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Blog Page') ) : ?>
<?php endif; ?>
然后我称之为
<?php get_sidebar('Home Page'); ?>
博客页边栏也出现了。怎么办?
编辑: 等等我需要为我的所有侧边栏创建一个页面吗?这就是为什么它不起作用?
这会是很多页面还有其他方法吗?
答案 0 :(得分:0)
我的做法略有不同,我这样做:
这在我的functions.php中:
// header
register_sidebar( array (
'name' => 'Header Widget Area',
'id' => 'header_widget_area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => "</li>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
// Single Post Sidebar
register_sidebar( array (
'name' => 'Single Widget Area',
'id' => 'single_widget_area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => "</li>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
然后我就这样称呼它们,我正在使用它们的模板:
<?php if ( is_sidebar_active('header_widget_area') ) : ?>
<?php dynamic_sidebar('header_widget_area'); ?>
<?php endif; ?>
如果您需要更多帮助,请与我联系。
答案 1 :(得分:0)
命令dynamic_sidebar()实际输出指示的侧边栏。当您调用get_sidebar时,它会显示这两个侧边栏,因为在条件栏中,会输出侧边栏。
你并没有走上正确的道路。
你想要简单地拥有
get_sidebar();
在你的模板中。
然后在sidebar.php文件中你会做条件来确定何时显示什么。例如,像这样......
if ( is_page() ) :
dynamic_sidebar('page-sidebar');
elseif ( is_post() ) :
dynamic_sidebar('post-sidebar');
endif;
如果您仍然遇到问题,请告诉我,我可以提供更多详细信息/更详细的解决方案示例