Wie aktualisierst du einen Netzwerkoptionswert in der DB über einen Haken

Ich versuche, den Wert einer Option in der DB für alle Sites innerhalb meiner Multisite zu aktualisieren, aber hier ist der Code nicht erfolgreich, der mir die letzten 2 Stunden die Haare gerissen hat:

function simplifyit_upload_folder($blog_id){ switch_to_blog($blog_id); update_option('uploads_use_yearmonth_folders', false); restore_current_blog(); } add_action( 'update_wpmu_options', 'simplifyit_upload_folder' ); 

Danke an @TheDeadMedic, der mir die Filterung gegeben hat, aber ich möchte den Wert in der DB aktualisieren:

 add_filter( 'option_uploads_use_yearmonth_folders', '__return_false', 100 ); 

Es tut mir leid, dass ich nicht übersichtlicher bin. Ich möchte sicherstellen, dass alle Blogs im Netzwerk für die JJJJMM-Upload-Option standardmäßig auf 0 gesetzt sind, aber den Netzwerkadministrator über das WP-Netzwerk-Panel überschreiben lassen möchten, sollte er dies wünschen dies für einzelne Websites tun

Solutions Collecting From Web of "Wie aktualisierst du einen Netzwerkoptionswert in der DB über einen Haken"

Nun, “update_wpmu_options” ist sicherlich der falsche Haken. Es sendet die blog_id nicht als Parameter, daher wird Ihr Code niemals mit diesem Hook funktionieren und den Parameter blog_id verwenden.

Wenn Sie nur den Wert auf jeder Website aktualisieren möchten, dann würde ich nur update_option('uploads_use_yearmonth_folders', 0); auf dem init Hook und warten Sie, bis jede Site einmal besucht wurde.

Das Feld endet mit einem leeren Wert 🙁

Wenn Sie den Wert entfernen möchten, wie es aus diesem Kommentar hervorgeht, benötigen Sie delete_option oder delete_site_option . Letzteres scheint am geeignetsten.

 function simplifyit_upload_folder(){ $current_site = get_current_site(); switch_to_blog($current_site->id); delete_site_option('uploads_use_yearmonth_folders'); restore_current_blog(); } add_action( 'update_wpmu_options', 'simplifyit_upload_folder' ); 

Ich habe get_current_site , um die Blog-ID zu erhalten, da dieser Hook den Wert nicht get_current_site .

Ich bin mir aber nicht ganz sicher ob der Haken du willst. Es läuft im Admin und nur wenn es POST Daten gibt – http://core.trac.wordpress.org/browser/trunk/wp-admin/network/settings.php#L69

Basierend auf einer Bearbeitung der Frage klingt es so, als ob Sie den wpmu_new_blog Hook möchten, sodass Ihr Wert bei der Blog-Erstellung festgelegt wird. Nach dem Blog-Admins könnte es ändern, und Ihr Code würde nicht stören.

Ungetestet (Ich habe jetzt keine MU auf einem Dev-Server), aber …

 function simplifyit_upload_folder($blog_id){ // not 100% sure exactly what you need here; caveat emptor :) update_option('uploads_use_yearmonth_folders', false); } add_action( 'wpmu_new_blog', 'simplifyit_upload_folder' );