在自定义主题中启用默认小部件

时间:2011-05-06 作者:Volomike

在自定义主题开发中,如何启用默认的内置小部件?注意,我指的是默认的内置小部件,而不是自定义小部件。我尝试了以下WP 3.12博客的示例,将其放置在我的主题函数中。php文件,尝试在默认情况下激活页面。它不起作用,但我不知道为什么。

function mytheme_widget_init(){
  $asOps = array(
    \'classname\' => \'widget_pages\',
    \'description\' => __( "")
  );
  wp_register_sidebar_widget(\'pages\', __(\'Pages\'), \'wp_widget_pages\', $asOps);
}

add_action(\'widgets_init\',\'mytheme_widget_init\');
我做错了什么?

EDIT: THE SOLUTION

在我的主题中,我需要重新编辑侧边栏。并改用此标记。

<?php ?>
<div id="sidebar" role="complementary">
    <ul>

<?php if ( !dynamic_sidebar(1) ) : ?>
<?php endif; ?>

<?php if ( !is_active_sidebar(1) ) : ?>

    <li id="search" class="widget-container widget_search">
        <?php get_search_form(); ?>
    </li>

    <li id="categories" class="widet-container widget_categories">
        <?php wp_list_categories(\'show_option_none=&title_li=<h2>\' . __(\'Categories\') . \'</h2>\' ); ?>
    </li>

    <li id="archives" class="widget-container widget_archives">
        <h2 class="widget-title">Archives</h2>
        <ul>
            <?php wp_get_archives( \'type=monthly\' ); ?>
        </ul>
    </li>

    <li id="pages" class="widget-container widget_pages">
        <ul>
            <?php wp_list_pages(\'title_li=<h2>\' . __(\'Pages\') . \'</h2>\'); ?>
        </ul>
    </li>

<?php endif; ?>

    </ul>
</div><!-- sidebar -->

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

不是这样的,wp_register_sidebar_widget 用于创建小部件。如果希望侧栏在默认情况下显示小部件,请使用[dynamic_sidebar()][1] 在您的主题中,例如2010年主题:

<div id="primary" class="widget-area" role="complementary">
            <ul class="xoxo">

<?php
    /* When we call the dynamic_sidebar() function, it\'ll spit out
     * the widgets for that widget area. If it instead returns false,
     * then the sidebar simply doesn\'t exist, so we\'ll hard-code in
     * some default sidebar stuff just in case.
     */
    if ( ! dynamic_sidebar( \'primary-widget-area\' ) ) : ?>

            <li id="search" class="widget-container widget_search">
                <?php get_search_form(); ?>
            </li>

            <li id="archives" class="widget-container">
                <h3 class="widget-title"><?php _e( \'Archives\', \'twentyten\' ); ?></h3>
                <ul>
                    <?php wp_get_archives( \'type=monthly\' ); ?>
                </ul>
            </li>

            <li id="meta" class="widget-container">
                <h3 class="widget-title"><?php _e( \'Meta\', \'twentyten\' ); ?></h3>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </li>

        <?php endif; // end primary widget area ?>
            </ul>
        </div><!-- #primary .widget-area -->

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?