¿Cómo recuperar un valor mediante get_option cuando el option_value está almacenado en un array multidimensional?

11 ene 2011, 21:07:09
Vistas: 23.2K
Votos: 3

Estoy tratando de determinar cómo recuperar valores personalizados de wp_options cuando los valores están almacenados en un único array de opciones.

Por ejemplo, tengo los siguientes datos en wp_options para option_value donde option_name = "my_category_fields_option". El valor i:n representa el ID de la categoría que contiene los datos personalizados "my_title"]

a:2:{i:10;a:1:{s:8:"my_title";s:48:"Té Helado: Una Gran Elección para Refrescarse";}i:20;a:1:{s:8:"my_title";s:30:"El Té Negro es Bueno para el Alma";}}

¿Cómo podría recuperar el valor de "my_title" (que debería ser "Hello World") cuando estoy viendo la página de archivo de categoría para esta categoría?

// Ejemplo de cómo recuperar el valor
$options = get_option('my_category_fields_option');
$category_id = get_queried_object_id(); // Obtiene el ID de la categoría actual
$my_title = isset($options[$category_id]['my_title']) ? $options[$category_id]['my_title'] : '';
0
Todas las respuestas a la pregunta 2
0
$term_id = get_query_var('cat'); // ID de la categoría actual

$my_fields = get_option('my_category_fields_option');
echo $my_fields[$term_id]['my_title']; // el título correspondiente a la categoría actual

(asumiendo que te refieres a ¿Algún ejemplo de cómo añadir campos personalizados al editor de categorías?)

11 ene 2011 21:25:24
0

Si pasas un array a update_option, se serializará automáticamente. Luego puedes recuperarlos como un array de esta manera.

$tempoptions = get_option("plugin-options");
if (!empty($tempoptions)) {
    foreach ($tempoptions as $key => $option)
        $options[$key] = $option;
}

Luego puedes hacer algo como var_dump ($options) esto te mostrará todo el array.

Creo que utilizan las funciones maybe_serialize/maybe_unserialize/is_serialized del codex, pero nunca he investigado realmente. Acabo de encontrarlas ahora. http://codex.wordpress.org/Function_Reference/maybe_serialize

11 ene 2011 21:59:45