Cómo verificar si una opción existe pero está vacía
Estoy usando algo como esto en uno de mis plugins:
$myOption_def = "Valor por defecto de myOption";
$myOption = get_option( 'myOption' ) ? get_option( 'myOption' ) : $myOption_def;
Funciona bien, pero el problema es que necesito poder establecer la opción como "vacía", y cuando lo hago (desde un textarea en la página de opciones de mi plugin), obtengo el valor por defecto en lugar de una cadena vacía porque get_option( 'myOption' ) devuelve lo mismo si el valor de mi opción está vacío que si no existe.
¿Cómo puedo determinar cuándo mi opción no existe (y entonces establecer $myOption a mi valor por defecto), o cuándo el valor de mi opción está vacío (y entonces establecer $myOption a una cadena vacía)?

Básicamente, para distinguir entre el valor booleano false
y una cadena vacía ''
debes usar un operador de comparación más estricto.
var_dump( '' == false ); // esto es 'true', se tratan como dos valores 'empty()'
var_dump( '' === false ); // esto es 'false', porque aunque ambos son 'empty()' son de diferente tipo
Pero hay más. Ya que lo que buscas es bastante común - get_option()
ya puede proporcionar un valor por defecto por sí mismo. Así que tu código puede simplificarse a:
$myOption = get_option( 'myOption', $myOption_def );
Nota que esto determinará correctamente una cadena vacía y no aplicará el valor por defecto en ese caso.

esa es la única respuesta válida en mi opinión, espero que también lo consigamos para las variables de consulta en el núcleo.

no lo hagas así, haz lo que Rarst sugirió en su lugar: $myOption = get_option( 'myOption', $myOption_def );
. No necesitas reinventar la rueda. Ya está ahí, un valor por defecto para cualquier opción. Simplemente pásalo como segundo parámetro.
