फ़ंक्शन चलाने के बाद थीम विकल्प सहेजे जाते हैं?


10

अजीब सवाल है, मैं एक कस्टम फ़ंक्शन कैसे चला सकता हूं जब मेरी थीम सेटिंग्स सहेजी जाती हैं? मैं देखता हूं कि register_settings () फ़ंक्शन में एक सैनिटाइज़बैक कॉलबैक है, लेकिन वह सेटिंग्स बदलने से पहले चलता है। मुझे बचाने के बाद उन्हें चलाने के लिए कुछ चाहिए। क्या ऐसा करने के लिए मैं एक क्रिया या फ़िल्टर का उपयोग कर सकता हूं?

EDIT -

तो मेरे पास यह सेटिंग है जिसे मैंने बनाया है:

add_settings_section(
    'kjd_body_background_settings_section', // ID hook name
    null, // label
    null, // function name
    'kjd_body_background_settings' // page name
);


    add_settings_field(
        'kjd_body_background_colors', // ID hook name
        null, //label
        null, //callback
        'kjd_body_background_settings', // page name
        'kjd_body_background_settings_section' // parent section 
);

और यह समारोह:

function kjd_update_stylesheet( $oldvalue, $_newvalue ){
   echo 'updated!';
   die();
}
add_action('update_options_kjd_body_background_settings','kjd_update_stylesheet',10, 2);

//add_action('update_options_kjd_body_background_colors','kjd_update_stylesheet',10, 2);

जवाबों:


18

फ़िल्टर का उपयोग करें update_option_{$option}। यह एक सफल बचत के बाद चलता है।

$option आपके विकल्प का नाम है, और आपको पुराने और नए मान पैरामीटर के रूप में मिलते हैं।

से wp-includes/option.php:

do_action( "update_option_{$option}", $oldvalue, $_newvalue );

एक विकल्प के लिए इसे इस तरह उपयोग करें wpse_themesettings:

add_action( 'update_option_wpse_themesettings', 'wpse_check_settings', 10, 2 );

function wpse_check_settings( $old_value, $new_value )
{
    // do something
}

हम्म ठीक है। इसलिए यदि मेरे पास दर्जनों विकल्प हैं, तो दर्जनों पृष्ठों / विकल्प समूहों में मुझे एक ही फ़ंक्शन को चलाने के लिए प्रत्येक पृष्ठ के लिए एक छिपा हुआ विकल्प बनाना होगा?
रगबर्ट

नहीं, आप केवल उन विकल्पों के नाम का उपयोग करते हैं जिन्हें आप बचाना चाहते हैं। कोई अतिरिक्त छिपा विकल्प नहीं।
FUXIA

हाँ, मैं काम पर अपने रास्ते पर सोचा और कहा कि "duh"! जवाब के लिए धन्यवाद, हालांकि, आपने सिर्फ मेरी परियोजना को 100% अधिक भयानक बना दिया
रगबर्ट

अरे, अभी तो हम स्पष्ट हैं। जब आप update_option {$ विकल्प} का उपयोग करने के लिए कहते हैं, तो आपका मतलब है कि register_settings () फ़ंक्शन में $ पृष्ठ तर्क सही है? तो add_settings_field( $id, $title, $callback, $page, $section, $args ); क्या यह आईडी नाम है?
रग्बर्ट

भी - मैं दोनों की कोशिश की और वे कस्टम आग करने के लिए नहीं लग रहे थे। मेरे द्वारा उपयोग किए गए कोड के लिए मेरा अद्यतन प्रश्न देखें
रगबर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.