Cum se recuperează o valoare prin get_option când option_value este stocat într-un array multidimensional?

11 ian. 2011, 21:07:09
Vizualizări: 23.2K
Voturi: 3

Încerc să determin cum să recuperez valori personalizate din wp_options când valorile sunt stocate într-un singur array de opțiuni.

De exemplu, am următoarele date în wp_options pentru option_value unde option_name = "my_category_fields_option". Valoarea i:n reprezintă ID-ul categoriei care conține datele personalizate "my_title"]

a:2:{i:10;a:1:{s:8:"my_title";s:48:"Iced Tea: A Great Choice for Cooling Refreshment";}i:20;a:1:{s:8:"my_title";s:30:"Black Tea is Good for the Soul";}}

Cum aș putea recupera valoarea pentru "my_title" (care ar trebui să fie "Hello World") când vizualizez pagina de arhivă a acestei categorii?

0
Toate răspunsurile la întrebare 2
0
$term_id = get_query_var('cat'); // ID-ul categoriei curente

$my_fields = get_option('my_category_fields_option');
echo $my_fields[$term_id]['my_title']; // titlul corespunzător categoriei curente

(presupunând că vorbești despre Exemple de adăugare a câmpurilor personalizate în editorul de categorii?)

11 ian. 2011 21:25:24
0

Dacă transmiți un array la update_option, acesta va fi automat serializat. Ulterior poți să-l recuperezi înapoi într-un array astfel:

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

Apoi poți face ceva de genul var_dump ($options) pentru a afișa întregul array.

Cred că ei folosesc funcțiile maybe_serialize/maybe_unserialize/is_serialized din codex, dar nu am studiat în detaliu. Le-am găsit acum. http://codex.wordpress.org/Function_Reference/maybe_serialize

11 ian. 2011 21:59:45