Ich muss sehen, ob eine Option und wenn ja, den Wert erhalten. Wenn nicht, muss ich es hinzufügen.
Der Codex bietet:
<?php
$option_name = 'myhack_extraction_length' ;
$new_value = '255' ;
if ( get_option( $option_name ) != $new_value ) {
update_option( $option_name, $new_value );
} else {
$deprecated = ' ';
$autoload = 'no';
add_option( $option_name, $new_value, $deprecated, $autoload );
}
?>
Was angeblich den Optionsnamen myhack_extraction_length mit dem Wert 255 aktualisiert. Wenn die Option nicht existiert, benutze add_option und setze autoload auf no.
Es scheint mir jedoch, dass die zweite Hälfte auf zwei Arten aufgerufen werden könnte, wenn die Option nicht existiert OR, wenn der neue Wert == die Option ist
Ist das richtig?
Die Logik auf der IF THEN ELSE scheint ein bisschen wackelig. Wenn ich es richtig lese ...
Der Aufruf von get_option ($ option_name) gibt FALSE zurück, wenn die Option nicht existiert oder keinen Wert hat.
Also würde dasIFausgeführt werden:
Der Aufruf von update_option () würde dann den Wert aktualisieren oder die Option mit $ new_value erstellen.
DasELSEwürde aufgerufen, wenn:
Dies ist einfacher - prüfen Sie, ob die Option nicht vorhanden ist (gleiches gilt für false/empty). d. h .:
if(!get_option('speccc_nameee')){
update_option('speccc_nameee', 'first_default_value');
}
Ist das richtig?
Wenn du meinst "wann wird das" wenn "ausgeführt und wann wird das" sonst "ausgeführt, dann" nein ". Sieh dir die Bedingung an: if ( get_option( $option_name ) != $new_value ) {
Wenn die Option nicht existiert - false != '255'
ist true
-, wird der erste Teil ausgeführt. Es wird auch ausgeführt, wenn die Option vorhanden ist und die Werte nicht übereinstimmen --'123' != '255'
is true
.
Der else
wird nur ausgeführt, wenn die Werte do match-- '255' != '255'
falsch sind, sodass der Teil else
ausgeführt wird. Sie könnten mit allem übereinstimmen, mit Zahlen, Zeichenketten, Booleschen - auch wahr oder falsch genannt
Ich glaube, dass der beste Ansatz für dieses Problem darin besteht, eine IF-ELSE-Logik wie die folgende zu erstellen:
if(get_option('some_option')){
update_option('some_option', 'value_we_want_to_add');
}
else {
add_option('some_option', 'value_we_want_to_add');
}
Logik: get_option () gibt WAHR zurück, wenn diese Option vorhanden ist. In diesem Fall können wir diese Option einfach mit einem Wert aktualisieren, den wir hinzufügen möchten. Dies erledigt update_option('some_option','value_we_want_to_add')
. Wenn andererseits eine Option nicht existiert, gibt get_option FALSE zurück und aktiviert den ELSE-Block. Innerhalb des else-Blocks gaben wir die Anweisung, diese "some_option" zu erstellen und ihr den gewünschten Wert zuzuweisen.
Optional kann diese Logik geändert werden, um weitergehende Anforderungen zu erfüllen.