Создаем форму для ввода глобальных пользовательских параметров

25 Мар 2023г. в 10:25

WordPress - отличная платформа, которая позволяет эффективно строить любые сайты. Для всей магии используются только 11 таблиц базы данных. Таблица wp_options является одной из них и действует как разум сайта, управляемого WordPress.

Данная таблица хранит всю информацию, связанную с вашим веб сервером - имя сайта, описательный слоган, URL и многое другое. Вся информация может быть легко получена с помощью функции get_option(), нужно просто передать имя поля, которое требуется. Например, get_option('home') вернет URL главной страницы.

Но WordPress не имеет инструмента для добавления новых параметров в данную таблицу, чтобы потом использовать их. В данном уроке мы создадим новую страницу администратора, с которой вы сможете сохранять свои пользовательские глобальные параметры.

Что должно получиться?

Если вы хотите хранить ваш идентификатор Twitter, просто следуйте инструкциям урока. В результате вы сможете использовать ваш идентификатор Twitter ID с помощью функции get_option(‘twitterid’) в любом месте активной темы вашего сайта на WordPress.

Код

Ниже приводятся шаги с кодом. Нужно поместить данный код в файл functions.php активной темы вашего сайта.

Шаг1. Добавляем меню администратора
Данный код просто добавляет новое меню для администратора:

add_action('admin_menu', 'add_global_custom_options');

Шаг 2. Назначаем функцию для генерации формы администратора
Назначаем функцию, которая будет создавать форму.

function add_global_custom_options()
{
add_options_page('Глобальные пользовательские параметры', 'Глобальные пользовательские параметры', 'manage_options', 'functions','global_custom_options');
}
Шаг 3. Создаем функцию, которая генерирует форму

<?php
function global_custom_options()
{
?>
<div class="wrap">
<h2>Глобальные пользовательские парметры</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p><strong>Twitter ID:</strong><br />
<input type="text" name="twitterid" size="45" value="<?php echo get_option('twitterid'); ?>" />
</p>
<p><input type="submit" name="Submit" value="Сохранить" /></p>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="twitterid" />
</form>
</div>
<?php
}
?>

Обратите внимание, что данная форма предназначена для работы только с одним полем. Если вам нужно использовать и другие пользовательские параметры, то нужно выполнить два шага для внесения измений в форму.

1 – Разместить новый блок с уникальным именем. Например, для сохранения ссылки на страницу Facebook можно сделать так:

<p><strong>Ссылка на страницу Facebook:</strong><br />
<input type="text" name="fb_link" size="45" value="<?php echo get_option('fb_link'); ?>" />
</p>

2 – Обновить значение скрытого поля с именем “page_options”. Для нашего примера изменения будут выглядеть следующим образом:

<input type="hidden" name="page_options" value="twitterid,fb_link" />
Имена параметров добавляются через запятую. Данный шаг необходим.

Как использовать?

После размещения выше приведённого кода в файле functions.php посмотрите на страницу администратора. В меню должен присутствовать новый пункт "Глобальные пользовательские параметры, который будет открывать новую форму. Введите значение, после чего вы сможете использовать его в любом месте темы с помощью функции “get_option(‘twitterid’)”.