Die Admin Pages von WordPress sind gespickt mit nonces . Also ein guter Grund, auch mal seine eigenen Metabox-Felder mit diesem Sicherheitsschloss zu versehen.
English Summary:
This artice describes the use of nonces on WordPress admin pages with multiple metaboxes
Nach einigem Herumprobieren habe ich für mich folgende funktionierende Lösung gewählt.
Zunächst mal werden alle Eingabefelder auf einer admin-page bereits von WordPress in einem einzigen Formular gebündelt, egal ob sie aus einer oder aus mehreren Metaboxen stammen.
Daher braucht man auch nur ein einziges nonce, das in irgend einer der Metaboxen stehen kann. Wenn diese Metabox gelöscht wurde, liegt nach meiner Einschätzung ein grober Fehler in der Anwendung vor. Aber es entsteht kein Schaden, weil vor dem Schreiben der Daten der Check des nicht existierenden nonces negativ ausläuft und danach verhindert wird, dass Daten in die DB geschrieben werden.
Nonce Erstellung nach Codec in irgend einer Metabox
wp_nonce_field( 'name_of_my_action','name_of_nonce_field' );
Nonce Check nach Codec kurz vor dem Schreiben der Daten
if ( !empty($_POST) && check_admin_referer( 'name_of_my_action', 'name_of_nonce_field' ) )
Alles andere hat bei mir nicht richtig funktioniert. Wenn man z.B. kein eigenes nonce setzt, tut dies WordPress. Dieses nonce konnte ich aber nicht abprüfen.
Das Setzen und der Check der nonces funktioniert auch bei geschlossenen Metaboxen.