Как сохранить информацию, введенную пользователем в произвольное поле настройки, и как отобразить эту информацию на сайте?

Как сохранить и отобразить информацию, введенную в поле настроек административной панели в WordPress? Приведен ниже пример кода, который добавляет поля в меню настроек административной панели WordPress и объясняет, как сохранять и отображать введенные данные.

```php
add_action('admin_menu', 'site_options');

function site_options(){
    add_submenu_page(
        'options-general.php',
        'Site Options',
        'Site Options',
        'manage_options',
        'site_options',  // slug 
        'my_custom_submenu_page_callback'
    );
}

function my_custom_submenu_page_callback(){
    // Проверяем, была ли отправлена форма
    if(isset($_POST['submit'])){
        // Получаем значение введенное пользователем
        $field_value = $_POST['my_field'];
        
        // Сохраняем значение в базе данных WordPress
        update_option('my_field_option', $field_value);
    }
    
    // Получаем ранее сохраненное значение
    $saved_value = get_option('my_field_option');
    ?>

    <form method="post" action="">
        <p>Copyright
            <input type="text" name="my_field" value="<?php echo esc_attr($saved_value); ?>">
        </p>
        <input type="submit" name="submit" value="Save">
    </form>
 <?php
}
```

В приведенном коде функция `my_custom_submenu_page_callback` создает форму с полем ввода, в которое пользователь может ввести информацию. При отправке формы, значение поля сохраняется в базе данных WordPress с помощью функции `update_option`. При следующем отображении страницы значение из базы данных выводится в поле ввода с помощью функции `get_option`.
Изображение к вопросу
  • 25 сентября 2023 г. 20:17
Ответы на вопрос 2
Чтобы сохранить информацию, введенную пользователем в произвольное поле настроек, вам нужно использовать функцию `update_option` внутри обработчика формы. В данном примере значение, введенное пользователем, сохраняется в базе данных с ключом `my_field_option`:

```php
// Проверяем, была ли отправлена форма
if(isset($_POST['submit'])){
    // Получаем значение введенное пользователем
    $field_value = $_POST['my_field'];
    
    // Сохраняем значение в базе данных WordPress
    update_option('my_field_option', $field_value);
}
```

Чтобы отобразить сохраненную информацию на сайте, вам нужно использовать функцию `get_option`, чтобы получить ранее сохраненное значение, и затем вывести его в нужном месте на странице:

```php
// Получаем ранее сохраненное значение
$saved_value = get_option('my_field_option');

// Выводим сохраненное значение в нужном месте на странице
echo esc_html($saved_value);
```

Вы можете поместить этот код в нужное место на вашей странице, например, внутри шаблона вашей темы или внутри файла функций темы.

Помните, что значение, сохраненное с помощью `update_option`, будет доступно до тех пор, пока вы не измените или удалите его. При необходимости вы можете изменить ключ `my_field_option` и другие названия в коде согласно вашим потребностям.
Решение этой проблемы состоит в использовании плагина ACF (Advanced Custom Fields). Вам нужно добавить следующий код в файл functions.php:

```php
if (function_exists("acf_add_options_page")) {
    acf_add_options_page(array(
        "page_title" => "Options",
        "menu_title" => "Options",
        "menu_slug"  => "theme_settings",
    ));
}
```

Далее в настройках группы полей вы добавляете новую группу с условием отображения "(Страница с опциями равно "Options")".

Чтобы вывести значение поля, используйте следующий код:

```php

```

Вместо "ярлык_вашего_поля" вставьте ярлык вашего поля.
Похожие вопросы