Как получить значение с помощью опции get, если значение опции хранится в многомерном массиве?


Я пытаюсь определить, как извлекать пользовательские значения из wp_options, когда значения хранятся в одном массиве параметров.

Например, у меня есть следующие данные в wp_options для option_value, где option_name = "my_category_fields_option". Значение i:n представляет идентификатор категории категории, в которой хранятся пользовательские данные "my_title"]

A:2:{i:10; a:1:{s:8: "мой заголовок"; s:48: "Чай со льдом: Отличный выбор для охлаждения Освежение";}i:20; a:1:{s:8: "my_title"; s:30: "Черный чай полезен для души";}}

Как мне получить значение для "my_title" (которое должно быть "Привет, мир"), когда я просматриваю страницу архива категорий для этой категории?

Author: Scott B, 2011-01-11

2 answers

$term_id = get_query_var('cat'); // the current category ID

$my_fields = get_option('my_category_fields_option');
echo $my_fields[$term_id]['my_title']; // the title corresponding to the current category

(предполагая, что вы говорите о Любых примерах добавления пользовательских полей в редактор категорий?)

 5
Author: onetrickpony, 2017-04-13 12:37:38

Если вы передадите массив в параметр update_option, он автоматически сериализует его. позже вы можете восстановить их обратно в массив, подобный этому.

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

Затем сделайте что-то вроде var_dump ($options), это покажет вам весь массив.

Я думаю, что они используют функции maybe_serialize/maybe_unserialize/is_serialized из кодекса, но я никогда по-настоящему не изучал это. Только что нашел их сейчас. http://codex.wordpress.org/Function_Reference/maybe_serialize

 2
Author: Patriek, 2012-10-17 08:28:23