默认小部件分配-不起作用

时间:2013-05-23 作者:Mayeenul Islam

问题是在侧边栏中调用默认小部件:

因此,尽管THIS THREAD, 我尝试了另一种方法-Ian Stewart借用的解决方案HERE.

这就像,将以下几行声明为functions.php, 假设我的主题中有两个不同的侧栏:

// Preset Widgets
$preset_widgets = array (
        \'primary_widget_area\'  => array( \'search\', \'pages\', \'categories\', \'archives\' ),
        \'secondary_widget_area\'  => array( \'links\', \'meta\' )
);

if ( isset( $_GET[\'activated\'] ) ) {
        update_option( \'sidebars_widgets\', $preset_widgets );
}

//update_option( \'sidebars_widgets\', NULL );




// Check for static widgets in widget-ready areas
function is_sidebar_active( $index ){

  global $wp_registered_sidebars;

  $widgetcolums = wp_get_sidebars_widgets();

  if ($widgetcolums[$index]) return true;

        return false;

} // end is_sidebar_active
问题是,我的主题不是在一开始没有任何小部件的情况下调用默认小部件。我无法修复它,因为我无法理解上面的代码以及Ian Stewart解释的过程。

而且,无法理解关于//update_option( \'sidebars_widgets\', NULL );.

我怎样才能解决这个问题?

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

我使用带有PHP条件的回退解决了这个问题:sidebar.php 我的编码如下:

<?php if( is_active_sidebar(\'my_sidebar\') ) { ?>

        <div id="secondary" class="widget-area">
            <ul class="xoxo">
                <?php dynamic_sidebar(\'my_sidebar\'); ?>
            </ul>
        </div><!-- #secondary .widget-area -->

<?php } else { ?>

        <div id="secondary" class="widget-area">
            <ul class="xoxo">

                <?php // Default Widget : Archives ?>
                <li id="default-widget-1" class="widget-container default-widgets">
                    <h3 class="widget-title"><?php _e( \'Archives\', \'your-theme\' ); ?></h3>
                    <ul>
                        <?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
                    </ul>
                </li> <!-- #default-widget-1 -->

                <?php // Default Widget : Pages ?>
                <li id="default-widget-2" class="widget-container default-widgets">
                    <h3 class="widget-title"><?php _e( \'Pages\', \'your-theme\' ); ?></h3>
                    <ul>
                        <?php wp_list_pages(\'sort_column=menu_order&title_li=\'); ?>
                    </ul>
                </li> <!-- #default-widget-2 -->

                <?php // Default Widget : Categories ?>
                <li id="default-widget-3" class="widget-container default-widgets">
                    <h3 class="widget-title"><?php _e( \'Categories\', \'your-theme\' ); ?></h3>                            
                    <ul>
                        <?php wp_list_categories( \'sort_column=menu_order&title_li=\' ); ?>
                    </ul>
                </li> <!-- #default-widget-3 -->

                <?php // Default Widget : Meta ?>
                <li id="default-widget-4" class="widget-container default-widgets">
                    <h3 class="widget-title"><?php _e( \'Meta\', \'your-theme\' ); ?></h3>                            
                    <ul>
                        <?php wp_register(); ?>
                        <li><?php wp_loginout(); ?></li>
                        <?php wp_meta(); ?>
                    </ul>
                </li> <!-- #default-widget-4 -->

            </ul> <!-- .xoxo -->

        </div><!-- #secondary .widget-area -->

<?php } //endif( is_active_sidebar ?>

结束

相关推荐

Dynamic Sidebars & Echo

我可以成功地让我的动态侧边栏像这样工作:<div class=\"sidebar sidebar-first\"> <ul class=\"widget-area first\"> <?php dynamic_sidebar( \'pop-photos-sidebar\' ); ?> </ul> </div> 现在,我正在尝试让侧栏与php代码中的不同代码一起工作。我试着用