I need to see if an option, and if does, get the value. If not, I need to add it.

The Codex provides:

<?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 );
}

Which supposedly updates the option name myhack_extraction_length with the value 255. If the option does not exist then use add_option and set autoload to no.

However, it seems to me that the second half could be called in two ways, if the option does not exist OR if the new value==the option

Is this correct?

6 s
6

The logic on the IF THEN ELSE does seem a bit wonky. If I’m reading it correctly…

The call to get_option( $option_name ) will return FALSE if the option does not exist or if it has no value.

So the IF would be executed:

  1. when the option doesn’t exist and $new_value != FALSE
  2. the option has no value and $new_value != FALSE
  3. the option exists and has a value that is != $new value

The update_option() call would then update the value or create the option with $new_value.

The ELSE would be called if:

  1. the option exists and has the same value as $new_value
  2. the option does not exist and the $new_value == FALSE
Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *