Включение виджетов по умолчанию в разработке пользовательской темы
-
16-10-2019 - |
Вопрос
В тематическом здании WP, если боковая панель не активна, могу ли я включить ее? Кроме того, если боковая панель активна и не содержит никаких виджетов, могу ли я добавить?
Я разработчик темы и плагинов, но это то, что я еще не научился делать.
Решение
@Volomik,
Когда вы зарегистрируете боковую панель в ваших темах функции, она будет активна на приборной панели. Если в ваших боковых панелях WordPress не добавлены виджеты. Вы можете не допустить, чтобы WordPress добавил виджеты по умолчанию, не зарегистрировав их:
// Remove WP default Widgets
// WP 2.8 function using $widget_class
if (function_exists('unregister_widget')) {
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('');
// pre WP 2.8 function using $id
} else {
unregister_widget_control('meta');
unregister_widget_control('search');
}
Вы также можете предварительно настроить свои собственные виджеты.
// The following code sample is from The Thematic Theme which is licensed under the GPLv2
register_sidebar_widget(__('Search', 'thematic'), 'widget_thematic_search', null, 'search');
unregister_widget_control('search');
register_sidebar_widget(__('Meta', 'thematic'), 'widget_thematic_meta', null, 'meta');
unregister_widget_control('meta');
register_sidebar_widget(array(__('RSS Links', 'thematic'), 'widgets'), 'widget_thematic_rsslinks');
register_widget_control(array(__('RSS Links', 'thematic'), 'widgets'), 'widget_thematic_rsslinks_control', 300, 90);
// Pre-set Widgets
$preset_widgets = array (
'primary-aside' => array( 'search', 'pages', 'categories', 'archives' ),
'secondary-aside' => array( 'links', 'rss-links', 'meta' )
);
if ( isset( $_GET['activated'] ) ) {
update_option( 'sidebars_widgets', apply_filters('thematic_preset_widgets',$preset_widgets ));
}
ТематыC на самом деле является отличным примером всех вещей, которые можно сделать с помощью виджетов. Взгляни на widgets.php а также Виджеты-Экспенсии.php