2

我在 WordPress 中使用此代码添加了我的自定义动态侧边栏

register_sidebar
(array(
'name' => __( 'My widget' ),
'id' => 'right-sidebar',
'description' => __( 'Widgets in this area will be shown on the right-hand side.' ),
'before_title' => '<h1>',
'after_title' => '</h1>'
));

现在我可以通过 Dashboard -> Appearance -> Widgets 在 WordPress 管理员中看到这个动态侧边栏。

当我激活主题时,默认情况下,这个动态侧边栏不显示任何内容;要显示小部件(例如最近的帖子、页面、类别),我必须将它们拖到我的小部件动态侧边栏中。

但我希望 My Widget 动态侧边栏默认显示三个 Widget(Recent Posts、Pages、Category),类似于二十一或二十一中的动态侧边栏。

4

3 回答 3

2

这很容易做到,使用dynamic_sidebar()and the_widget()

这是用于显示默认内容的构造,如果没有 Widget 被添加到动态侧边栏:

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    // default content goes here
}
?>

因此,要将特定的Widget输出为默认内容,只需调用the_widget($widget, $instance, $args). 例如,要显示“最近的帖子”小部件

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    the_widget( 'WP_Widget_Recent_Posts' );
}
?>

(有关每个小部件的其他用法示例和$instance/$args值,请参阅链接的 Codex 参考资料。)

于 2012-04-18T16:39:41.573 回答
1

Well, it is a normal behavior, you just have to set default content for this sidebar in your theme. Take a look at twentyeleven/sidebar.php, you can do the same thing :

<?php if ( ! dynamic_sidebar( 'right-sidebar' ) ) : ?>
  Default content
<?php endif; ?>

And don't mistake, a sidebar is not a widget, it is a widget area.

于 2012-04-18T08:10:07.480 回答
0

它是可能的,但不是在自动激活方面。您需要在需要小部件(假设侧边栏)侧边栏的地方做的事情是真正的小部件就绪,并且管理员将新的侧边栏小部件弹出到阵容中,事情将自动切换到使用管理员指定的设置。

所以是的,您可以将其作为默认设置。而不是自动激活...

有关更多信息https://stackoverflow.com/a/3057665/716492

于 2012-04-18T06:45:29.563 回答