嗨其他程序员,
我对Wordpress相对较新,因为我通常使用Typo3,所以我对WP中的自定义侧边栏有疑问。
我在functions.php中有以下代码
function custom_sidebars()
{
register_sidebars(4, array
(
'name' => __('Panel Startseite %d', 'me'),
'id' => 'panel-home-%d',
'description' => 'Widget Position for home panel',
'class' => 'panel-sidebar',
'before_widget' => '<div class="widget-panel-%d">',
'after_widget' => '</div>',
'before_title' => '<h2 class="panel-title">',
'after_title' => '</h2>'
));
$args2 = array
(
'name' => __('Short Bio Sidebar', 'me'),
'id' => 'shortbio-id',
'description' => 'Widget Position for short bio',
'class' => 'shortbio-sidebar',
'before_widget' => '<div class="widget-bio">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
);
register_sidebars(1, $args2);
}
add_action('widgets_init', 'custom_sidebars');
我想在我的主页和页脚中添加4个面板,以便作者添加生物或更改它。
这是我的index.php
中的代码<div id="main">
<div class="wrapper">
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-1'); ?>
</div>
</div>
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-2'); ?>
</div>
... and so on
在给定位置的footer.php中也有相同的实现。
我的问题是:
我如何解决这个问题,我的基本思维错误是什么?
最诚挚的问候sKylo
答案 0 :(得分:0)
你的代码都很好。只有一个错误,你使用%d
来连接你的id之后的小数。但这不是必需的,因为%d会自动添加到提供的ID中。请在本答复的末尾找到codex链接。
所以,我从代码的id部分删除了%d,现在它可以工作了。
<强>解决方案:强>
function custom_sidebars()
{
register_sidebars(4, array
(
'name' => __('Panel Startseite %d', 'me'),
'id' => 'panel-home',
'description' => 'Widget Position for home panel',
'class' => 'panel-sidebar',
'before_widget' => '<div class="widget-panel">',
'after_widget' => '</div>',
'before_title' => '<h2 class="panel-title">',
'after_title' => '</h2>'
));
$args2 = array
(
'name' => __('Short Bio Sidebar', 'me'),
'id' => 'shortbio-id',
'description' => 'Widget Position for short bio',
'class' => 'shortbio-sidebar',
'before_widget' => '<div class="widget-bio">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
);
register_sidebars(1, $args2);
}
add_action('widgets_init', 'custom_sidebars');
和
<div id="main">
<div class="wrapper">
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home'); ?>
</div>
</div>
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-2'); ?>
</div>
... and so on
您无需将%d添加到register_sidebars的id。请阅读codex, 它说:
在第一个之后,“%d”自动添加到提供的“id”值;例如,“Sidebar-1”,“Sidebar-2”,“Sidebar-3”等等。