Custom Post type – Wie bekomme ich das Kontrollkästchen, um das Meta-Feld auf null zu setzen?

Ich habe 7 Meta-Felder für einen benutzerdefinierten Beitragstyp in WordPress. Diese 7 sind insbesondere Wochentage (Sonntag bis Samstag) und haben jeweils Kontrollkästchen. Ich habe erfolgreich das Kontrollkästchen POST aktiviert, wenn der Wert “Ein” ist, aber wenn ich auf die Bearbeitungsseite zurückkehren und versuchen, die Auswahl aufzuheben, bleibt der Wert in der database gleich.

Hier ist, was ich für jede Artikeleingabe habe:

  • <input type="checkbox" name="sunday" checked="checked"" /> Sunday
  • Und meine Update-Zeilen:

     if(!isset($_POST["sunday"])): return $post; endif; update_post_meta($post->ID, "sunday", $_POST["sunday"] ); 

    Solutions Collecting From Web of "Custom Post type – Wie bekomme ich das Kontrollkästchen, um das Meta-Feld auf null zu setzen?"

    Es scheint, dass das Post-Meta für ‘Sonntag’ nicht gelöscht wird, wenn das Kontrollkästchen deaktiviert ist.

     If( isset($_POST['sunday']) ){ update_post_meta($post->ID, "sunday", $_POST["sunday"] ); }else{ delete_post_meta($post->ID, "sunday"); } return $post; 

    Oder Sie können den Wert auf false setzen

     If( isset($_POST['sunday']) ){ update_post_meta($post->ID, "sunday", true ); }else{ update_post_meta($post->ID, "sunday", false ); } return $post; 

    Nicht markierte Kontrollkästchen sind nicht in $ _POST gesetzt, daher müssten Sie ihr Meta-Feld leeren.

    So etwas sollte funktionieren:

      $sunday = ( isset( $_POST['sunday'] ) ) ? $_POST['sunday'] : ""; update_post_meta( $post->ID, 'sunday', $sunday ); 

    Nicht markierte Kontrollkästchen sind nicht in $ _POST gesetzt, sie sind in $ _REQUEST gesetzt, Sie können den Wert eines benutzerdefinierten Beitragstyps wie folgt setzen:

     if ( isset( $_REQUEST['inprint'] ) ) { update_post_meta($post_id, '_inprint', TRUE); } else { update_post_meta($post_id, '_inprint', FALSE); } 

    und erhalte Checkbox-Wert wie folgt:

     global $post; $inprint= get_post_meta($post->ID, '_inprint', true);  />