Benutzerdefinierte WordPress-Felder (Kontrollkästchen mit mehreren Werten)

Ich verwende derzeit einen benutzerdefinierten Post-Typ mit einem benutzerdefinierten Feld, das ein Kontrollkästchen ist. Das Kontrollkästchen enthält mehrere Werte: Laptop, Neu, No-Marketing-Text und einige mehr. Wenn No-marketing-text der einzige ausgewählt ist, hat es kein Problem damit, das zu tun, was ich möchte. Wenn mehrere Kontrollkästchen ausgewählt sind, wird nur das erste ausgewählt, das ausgewählt ist. Was muss ich ändern, damit es funktioniert, auch wenn mehrere Kontrollkästchen ausgewählt sind?

ID, 'program_flags', true)){ echo ""; }else{ echo "
"; the_content(); echo "Back to Top
"; } ?>

Solutions Collecting From Web of "Benutzerdefinierte WordPress-Felder (Kontrollkästchen mit mehreren Werten)"

Unter der Prämisse , dass Ihre databaseeinträge korrekt gespeichert werden und Ihr Problem nur beim Abruf auftritt:

Wenn mehrere Boxen ausgewählt wurden, sollten die Werte in der database als serialisierte Arrays vorliegen.
Zum Glück get_post_meta get_post_meta sie für uns, aber sie sind immer noch Arrays.
Daher sollte Ihre Bedingung wie folgt geändert werden:

 $program_flags = get_post_meta( $post->ID, 'program_flags', true ); if( 'No-marketing-text' === $program_flags || ( is_array( $program_flags ) && in_array( 'No-marketing-text', $program_flags ) ) ){ // do your thing }