Раньше я создавал плагин для виджетов в твиттере, который использовал устаревшую версию:
register_sidebar_widget()
Я хочу обновить API виджетов из WordPress 2.8, но я также не хочу нарушать все существующие установки. Есть ли способ сообщить моему новому виджету, чтобы он извлекал настройки из старого виджета, если он существует?
Я провел некоторое тестирование, и похоже, что я могу временно перенести свои старые настройки, но у меня возникают проблемы с дублированием старого экземпляра виджета на боковой панели. Когда я загружаю новый код (даже если мои объекты названы одинаково), он вытаскивает старый виджет из боковой панели, и я должен добавить его снова.
Старый код:
// Run code and init
add_action('widgets_init', 'widget_reliabletwitter_init');
function widget_reliabletwitter_init() {
// Register widget for use
register_sidebar_widget(array('Reliable Twitter', 'widgets'), 'widget_reliabletwitter');
// Register settings for use, 325x400 pixel form
register_widget_control(array('Reliable Twitter', 'widgets'), 'widget_reliabletwitter_control', 325, 400);
Новый код:
add_action('widgets_init', 'reliable_twitter_load_widgets');
function reliable_twitter_load_widgets() {
register_widget('Reliable_Twitter');
}
class Reliable_Twitter extends WP_Widget {
/**
* Widget setup.
*/
function Reliable_Twitter() {
/* Widget settings. */
$widget_ops = array( 'classname' => 'widget_reliabletwitter', 'description' => __('Adds a sidebar widget to display Twitter updates and uses the more-reliable Google AJAX API.', 'widget_reliabletwitter') );
/* Widget control settings. */
$control_ops = array( 'width' => 325, 'height' => 400, 'id_base' => 'widget_reliabletwitter' );
/* Create the widget. */
$this->WP_Widget( 'widget_reliabletwitter', __('Reliable Twitter', 'widget_reliabletwitter'), $widget_ops, $control_ops );
}