Я говорю о создании виджета, который расширяет дочерний виджет WP_Widget.Как расширить пользовательский виджет в wordpress?
Используя это в качестве ссылки: https://wordpress.stackexchange.com/questions/101438/how-to-extend-a-wp-widget-twice
Пример:
My_WidgetBase расширяет WP_Widget
My_Widget расширяет My_WidgetBase
Я хочу знать, как т o получите My_Widget, чтобы отобразить мои другие виджеты (его нет в настоящее время). Я получил My_WidgetBase для работы.
Это важно для моего каркаса. Я понимаю, что widget(), update() и form() должны быть переопределены, но я не мог найти ничего о том, чтобы сделать внука WP_Widget где угодно.
Пример:
class My_WidgetBase extends WP_Widget {
public function __construct($id = 'my-widget-base', $desc = 'My WidgetBase', $opts = array()) {
$widget_ops = array();
parent::__construct($id, $desc, $widget_ops);
}
public function widget($args, $instance) {
die('function WP_Widget::widget() must be over-ridden in a sub-class.');
}
public function update($new_instance, $old_instance) {
return $new_instance;
}
public function form($instance) {
echo '<p class="no-options-widget">' . __('There are no options for this widget.') . '</p>';
return 'noform';
}
}
function RegisterMyWidgets() {
register_widget('My_WidgetBase');
}
add_action('widgets_init', 'RegisterMyWidgets');
Вы регистрируетесь 'Bar'? Вы должны сделать это, используя 'function register_bar_widget() { register_widget ('Bar'); } add_action ('widgets_init', 'register_bar_widget'); ' –
Да, я использую add_action ('widgets_init', функция() { \t register_widget ('My_Widget'); }); в каждом из моих классов. –
Я верю, что вы меняете строку «My_Widget» там, верно? : P Не могли бы вы добавить код на свой вопрос? Может быть, это просто опечатка или что-то в этом роде. –