Tema seçenekleri kaydedildikten SONRA çalıştır işlevi?


10

Garip bir soru, tema ayarlarım kaydedildikten SONRA nasıl özel bir işlev çalıştırabilirim? Register_settings () işlevinin sanitize bir geri çağırma olduğunu, ancak ayarlar değiştirilmeden önce çalıştığını görüyorum. Kurtarıldıktan sonra koşacak bir şeye ihtiyacım var. Bunu yapmak için kullanabileceğim bir eylem veya filtre var mı?

DÜZENLE -

Yani yaptığım bu ayar var:

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 
);

ve bu işlev:

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);

Yanıtlar:


18

Filtreyi kullanın update_option_{$option}. Başarılı bir tasarrufun ardından çalışır.

$option seçeneğinizin adıdır ve parametre olarak eski ve yeni değeri alırsınız.

Gönderen wp-includes/option.php:

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

Bir seçenek için şu şekilde kullanın wpse_themesettings:

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

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

Hmm tamam. Düzinelerce seçeneğim varsa, düzinelerce sayfa / seçenek grubunun her biri aynı işlevi çalıştırmak için gizli bir seçenek yapmak zorunda kalır mıyım?
rugbert

Hayır, sadece kaydetmek istediğiniz seçeneklerin adlarını kullanırsınız. Ek gizli seçenek yok.
fuxia

Evet işe giderken bunu düşündüm ve "duh" dedim! Yine de cevabınız için teşekkürler, projemi% 100 daha harika hale
getirdiniz

Hey, bu yüzden netiz. Update_option {$ option} 'ı kullandığınızı söylediğinizde, register_settings () işlevindeki $ page bağımsız değişkenini mi kastediyorsunuz? öyle add_settings_field( $id, $title, $callback, $page, $section, $args ); mi yoksa Kimlik adı mı?
rugbert

Ayrıca - Ben sadece ikisini de denedim ve özel ateş gibi görünmüyordu.
Kullandığım
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.