Функция get_option()
в WordPress используется для получения значения опции по её имени. Она возвращает сохранённое в базе данных значение опции или значение по умолчанию, если опция не существует. Это важный инструмент для разработчиков, работающих с настройками темы, плагинов или пользовательскими настройками.
get_option( string $option, mixed $default_value = false ): mixed
Функция может вернуть разные типы данных: строки, массивы, объекты и другие типы данных, в зависимости от сохранённого значения. Если значение было сериализовано при сохранении, оно будет десериализовано при возврате. Важно помнить, что если опция не найдена и значение по умолчанию не указано, будет возвращено false
.
Параметры:
- $option (обязательный): Имя опции, которую необходимо получить. Ожидается, что имя не будет SQL-экранировано.
- $default_value (опциональный): Значение по умолчанию, которое будет возвращено, если опция не существует. По умолчанию:
false
.
Возвращаемое значение:
- Смешанный тип: Возвращает значение опции. Это может быть строка, логическое значение, массив, объект или любое другое значение. Если опция не найдена, возвращается
false
(если не указано значение по умолчанию).
1. Получение значения существующей опции
Если опция уже существует, функция вернёт её значение. Например, можно получить название сайта, используя опцию blogname
.
$blog_name = get_option( 'blogname' );
echo $blog_name; // Выведет название сайта, например: "Мой сайт"
2. Использование значения по умолчанию
Если опция не существует, и вы хотите указать значение по умолчанию, используйте второй параметр:
$posts_per_page = get_option( 'posts_per_page', 10 );
echo $posts_per_page; // Выведет 10, если опция не задана в базе данных
3. Работа с массивом опций
Иногда настройки сохраняются в виде массива. Например, для настроек плагина:
$plugin_settings = get_option( 'my_plugin_settings', array() );
if ( isset( $plugin_settings['setting_1'] ) ) {
echo 'Настройка 1 включена';
} else {
echo 'Настройка 1 отключена';
}
4. Проверка существования опции
Для проверки наличия опции можно использовать функцию isset()
:
if ( isset( get_option( 'nonexistent_option' ) ) ) {
echo 'Опция существует';
} else {
echo 'Опция не существует';
}
5. Получение десериализованного значения
Если в базу данных было сохранено сложное значение, например массив, оно будет автоматически десериализовано при получении:
// Сохраняем массив в базу данных
update_option( 'my_array_option', array( 'ключ1' => 'значение1', 'ключ2' => 'значение2' ) );
// Получаем и выводим
$array_option = get_option( 'my_array_option' );
print_r( $array_option );
Результат:
Array
(
[ключ1] => значение1
[ключ2] => значение2
)
6. Пример с фильтрацией
Вы можете использовать фильтры для изменения возвращаемого значения get_option()
на лету:
add_filter( 'option_blogname', function( $value ) {
return 'Новое название сайта';
});
echo get_option( 'blogname' ); // Выведет: "Новое название сайта"
Общие сценарии использования
- Настройки темы: Получение опций, таких как цветовая схема, шрифты или параметры макета.
- Настройки плагинов: Сохранение и получение пользовательских настроек плагина.
- Кастомизация сайта: Использование опций для управления различными настройками сайта через административную панель.
Советы и предостережения
- Использование значения по умолчанию: Всегда старайтесь указывать значение по умолчанию во втором параметре, чтобы избежать возврата
false
и лишних запросов в базу данных. - Используйте
add_option()
для инициализации: При создании новой опции лучше использоватьadd_option()
вместо простого вызоваget_option()
, чтобы избежать дополнительных запросов в базу данных.
Заключение
Функция get_option()
— это мощный инструмент, обеспечивающий гибкость при работе с настройками сайта, тем и плагинов в WordPress.