Intereting Posts
WordPress пытается загрузить «следующую страницу» после завершения загрузки текущей страницы Как я могу скрыть сообщения, которым больше 2 лет Как я могу скрыть все сообщения, у которых нет миниатюры? Общие участники между двумя различными установками wordpress с различными базами данных Проблема с oEmbed в некоторых темах Отображение тегов, связанных с сообщениями в пользовательском типе сообщений TinyMCE – нет автоматического форматирования с использованием the_editor ()? Как изменить содержимое сообщения перед записью в базу данных? WP Rest API и json_decode () Как выполнить запрос с помощью get_posts () для сообщений с любым тегом Как отображать липкую почту с пользовательским html Как получить значение через get_option, когда параметр_value хранится в многомерном массиве? Как включить комментарии только для последней страницы разбитого на страницы сообщения? Как получить идентификаторы категории, которые добавляются в главное меню? Эхо-JavaScript безопасно

Функция get_option

В настоящее время я пытаюсь создать свою собственную тему, но я не совсем уверен, как работает функция get_option (), потому что, как это происходит.

echo get_option('show_header', 'sultenhest_theme_display_options'); echo get_option('sultenhest_theme_display_options')['show_header']; 

..both возвращает 1 (но Dreamweaver не любит второй вариант). В то время как

 echo get_option('twitter', 'sultenhest_theme_social_options'); 

..simply возвращает 'sultenhest_theme_social_options', что неверно.

Параметр должен был бы определить массив как таковой

 $social_options = get_option( 'sultenhest_theme_social_options' ); 

и назовите его так

 echo $social_options['twitter']; 

Он возвращает правильную строку, но работает только в файле header.php (если массив определен там), а не в, например, footer.php.


ОБНОВЛЕНИЕ: После частично ialocin и Brad Dalton я придумал это решение, которое работает как шарм:

 function sultenhest($option, $arg){ $the_array = array(); foreach( get_option('sultenhest_theme_'.$option) as $key => $item ){ $the_array[$key] = $item; } return $the_array[$arg]; } 

и повторяю это следующим образом:

 echo sultenhest('social_options', 'twitter') ? '<a href="' . sultenhest('social_options', 'twitter') . '">Twitter</a>' : ''; 

Solutions Collecting From Web of "Функция get_option"

Вы используете get_option() неправильно, первый вариант, поэтому еще раз посмотрите на документацию get_option() . В принципе, вы не можете напрямую обращаться к элементу массива с помощью функции, он просто не поддерживает его.

Второй вариант должен быть возможен, но вам нужно хотя бы PHP 5.4 – если я не ошибаюсь; Я ничего не знаю о Dreamweaver.

Причина, по которой вы не можете получить доступ к переменной везде, где хотите, – это область переменной, прочитанная в руководстве PHP Manual: Variable scope .

Самое легкое, что я себе представляю, – это сделать это по-старому, просто сделайте функцию, которую вы можете использовать. Примерный пример:

 function wpse_179693_echo_my_options_array_value() { $social_options = get_option( 'sultenhest_theme_social_options' ); if ( isset( $social_options['twitter'] ) ) { echo $social_options['twitter']; } else { return FALSE; } }