Trong Wordpress, mục tiêu của tôi là có thể đưa ra một lớp tùy chỉnh cho mọi tiện ích mà tôi đặt vào thanh bên. Tốt hơn là tôi muốn thêm lớp này vào cài đặt tiện ích của từng tiện ích con. CSONG widget bên thứ 3.Wordpress: Thêm tùy chọn cấu hình vào tất cả các cài đặt widget
Tôi đã nghĩ đến việc thay đổi classname, vì classname đã được thông qua với register_sidebar function (% 2 $ s):
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Ofcourse tôi không nên thay đổi mã WP lõi hoặc bên thứ 3 bổ sung. Điều này có nghĩa rằng tôi cần phải viết một plugin mà sẽ móc vào quá trình cấu hình widget.
Tôi đã phát hiện ra rằng nó có thể thay đổi tất cả các dạng widget, bằng cách gắn vào hành động 'in_widget_form':
<?php
add_action('in_widget_form', 'teaserWidgetAddToForm');
function teaserWidgetAddToForm($widget_instance) {
?>
<label for="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>">Custom classname(s):</label>
<input type="text" id="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>" name="<?php echo $widget_instance->get_field_name('teaser-classname'); ?>">
<?php
}
?>
Những thông tin này sẽ được lưu bởi siêu lớp Widget, nhưng làm thế nào để bạn lấy dữ liệu này (vì vậy khi mở cài đặt tiện ích con sau này hiển thị những gì bạn đã điền trước đó)
Và, dữ liệu đã lưu này sẽ được đặt trong trường hợp tiện ích con- đây là cách thực hiện? Tôi đoán bằng cách sử dụng một cái gì đó như:
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
Vì vậy, về cơ bản tôi có 2 câu hỏi:
- Tôi có sử dụng một cách thích hợp để giải quyết vấn đề này (phong cách của widget cá nhân)
- Nếu vậy, làm thế nào tôi có thể sửa đổi một cá thể widget để lưu và truy xuất các cài đặt bổ sung mà không phải sửa đổi mã nguồn của Plugin của Wordpress hoặc bên thứ ba.
Brilliant! Trong khi đó, tôi đã có thể lưu các thiết lập mới và tôi đã đi xa như sử dụng móc "widget_display_callback". Nhưng đã không nhận ra rằng bạn có thể trả về false và tự gọi $ widget-> widget(). Cảm ơn nhiều! – publicJorn