मुझे अपने सिर से प्रश्न नहीं मिल सकता है, लेकिन मेरे पास पूर्ण समाधान के लिए समय नहीं है। इसलिए मैं सिर्फ अपना विचार यहाँ लिखता हूँ, फिर मैं एक छोटा सा इनाम रखूँगा।
वहाँ एक क्रिया है 'widgets_admin_page'
में wp-admin/widgets.php
अन्य सामग्री के ऊपर। आप यहां एक पूर्वावलोकन बॉक्स रख सकते हैं।
नमूना कोड:
add_action( 'widgets_admin_page', 'show_widget_preview' );
function show_widget_preview()
{
$preview_widgets = $GLOBALS['wp_registered_sidebars'];
unset ( $preview_widgets['wp_inactive_widgets'] );
print '<div style="border:2px solid #ddf;padding:20px">'
. '<pre>' . htmlspecialchars( print_r( $preview_widgets, TRUE ) ) . '</pre>'
. '</div>';
}
यह सभी पंजीकृत साइडबार की एक सरणी प्रिंट करता है। आपको पंजीकृत विजेट खोजने के लिए सभी साइडबार से गुजरना होगा।
पूर्वावलोकन को उपयोगी बनाने के लिए आपको दो फ़ाइलों की आवश्यकता होती है: एक HTML टेम्पलेट और एक स्टाइल शीट।
मैं उपयोग करूंगा add_theme_support()
।
थीम के लिए नमूना कोड functions.php
:
add_theme_support(
'widget_preview',
array (
'template' => get_stylesheet_directory() . '/widget-preview.php',
'stylesheet' => get_stylesheet_directory() . '/widget-preview.css'
)
);
में show_widget_preview()
आप शैली पत्रक enqueue और टेम्पलेट लोड। में पूर्वनिर्धारित प्लेसहोल्डर्स में पंजीकृत साइडबार रेंडर करें widget-preview.php
।
उपयोगकर्ता द्वारा विजेट में सेव बटन दबाने के बाद AJAX प्रति टेम्पलेट अपडेट करें ।
चुनौतियां: खाते, छोटी खिड़कियां और सीएसएस संघर्षों में पहुंच मोड लें। कोई साइडबार पंजीकृत होने पर एक उपयोगी संदेश दिखाएं (साइडबार विवरण?)। जब उपयोगकर्ता किसी विजेट को पूर्वावलोकन बॉक्स में खींचने का प्रयास करता है, तो क्या होना चाहिए? :)