我已经挣扎了好几个小时了,任何帮助都很感激。我使用下划线主题与一个侧边栏(侧栏-1,左边)和自定义侧边栏插件,以便我可以有不同的侧边内容在每一页。问题是当我添加一个新的侧边栏(侧栏-2)时,我想在页脚上方显示它,以便在每个页面上包含相同的内容。
functions.php:
function myunderscores3_widgets_init() {
register_sidebar( array(
'name' => esc_html__( 'Sidebar', 'myunderscores3' ),
'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here.', 'myunderscores3' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
//'before_title' => '',
) );
register_sidebar( array(
'name' => esc_html__( 'Bottom Sidebar', 'myunderscores3' ),
'id' => 'sidebar-2',
'description' => esc_html__( 'Add widgets here.', 'myunderscores3' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
//'before_title' => '',
) );
}
add_action( 'widgets_init', 'myunderscores3_widgets_init' );sidebar.php (用于侧栏-1内容):
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
return;
}
?>page.php (在侧边栏中拉-1):
footer.php (要拉侧边栏-2):
if (is_active_sidebar( 'sidebar-2' )) {
dynamic_sidebar( 'sidebar-2' );
}
?>在将小部件内容添加到侧栏-2之后,除了一个没有侧栏-1内容的页面外,每个页面都可以正常工作。在这个页面上,侧边栏-2的内容出现了两次-在底部如预期和在侧边栏-1内容区域也!此外,“不-侧边栏”类在身体上丢失了。在后端,侧栏-1小部件通过每个单独的页面定位,而侧栏-2内容则通过小部件定位(‘为选定的Post类型作为边栏’-页面)。在侧边栏-2内容出现两次的实际页面上,我没有在实际页面中指定任何侧边栏,因为我是通过小部件设置这样做的。有什么想法吗?谢谢
发布于 2019-04-18 10:56:53
模板文件包括在内,不像函数那样调用。尽管您调用了get_sidebar(),但幕后最终还是调用了include。换句话说,模板页面(如footer.php、page.php和sidebar.php)并不直接在函数中,因此不能像在sidebar.php中所做的那样“返回”它们。
因此,WordPress已经越过了这个点,然后运行了dynamic_sidebar( 'sidebar-1' );。现在,这里将有其他人必须跳进,并告诉您,它为什么加载错误的小部件。我不认为它会退回到一个活动的侧边栏,但至少基于您的代码,它似乎是。WordPress肯定会在菜单中这样做,除非你特别告诉它不要这样做。
但无论如何,我认为如果您只是修改代码,您将完全避免这种行为:
if ( is_active_sidebar( 'sidebar-1' ) ) :
?>所以,我所做的就是使用翻转检查(删除!)然后用它包装整个dynamic_sidebar部分(使用:和endif的替代PHP格式;)
发布于 2019-04-18 15:18:46
我不知道问题出在哪里,但是在删除了我所有的代码并再次创建了新的侧栏之后,它就开始工作了。可能是某个地方的错误还是缓存问题?
https://wordpress.stackexchange.com/questions/334684
复制相似问题