问题是在侧边栏中调用默认小部件:
因此,尽管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 );
.
我怎样才能解决这个问题?
最合适的回答,由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 ?>