Плагин Wordpress: Сохранить динамические поля настроек - PullRequest
0 голосов
/ 19 октября 2019

Я создаю плагин, который будет отображать категории сайта. Для каждой категории я хочу установить URL.

Итак, я создал таблицу, в которой отображаются все категории веб-сайта и поле для каждой.

Как сохранить каждое значение для каждой категории?

Вот мой код:

add_settings_field('name_categories','Categories','categories_cb','plugin-settings','plugin_label_settings');



function categories_cb() {

$settingurl = get_option('url_cat');

?>
<table>
    <tr>

<?php

$categories = get_categories( array(
'orderby' => 'name',
'order'   => 'ASC'
  ) );
$urlcat = 0;
foreach($categories as $category) { 

 echo "<tr>"; 

 echo '<td align="center" bgcolor="#AEB5B4">'.$category->name.'';
 echo "</td>";
       //deuxieme colonne le nb de presence
 echo "<td><input type='text' name='".$urlcat."' value='".$settingurl."'></td>";

 echo "</tr>";

 $urlcat++;



?>

И я хочу иметь возможность установить URL для каждого поля

Большое спасибо

1 Ответ

1 голос
/ 19 октября 2019

add_settings_field только для одного поля ввода. Вы можете найти подсказки в справочнике

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

Для вашей цели я рекомендую использовать add_settings_field для каждой из категорий в отдельности. Код будет выглядеть примерно так:

$categories = get_categories(array(
    'orderby' => 'name',
    'order'   => 'ASC'
));
foreach ($categories as $category) {
    add_settings_field(
        'name_category_' . $category->cat_ID,
        'Category ' . $category->name,
        'categories_cb',
        'plugin-settings',
        'plugin_label_settings',
        array(
            'id' => $category->cat_ID
        )
    );
    register_setting('plugin-settings', 'name_category_' . $category->cat_ID);
}

function categories_cb($args)
{
    $settingurl = get_option('name_category_' . $args["id"]);
    echo "<input type='text' name='name_category_". $args["id"] . "' value='" . $settingurl . "'>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...