WordPress插件:保存动态设置字段

时间:2019-10-19 09:45:19

标签: php wordpress

我正在创建一个插件,该插件将显示网站的类别。对于每个目录,我想设置一个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++;



?>

   

我希望能够为每个字段设置一个网址

非常感谢

1 个答案:

答案 0 :(得分:1)

add_settings_field仅用于一个输入字段。您可以在reference

中找到线索
  

回调函数需要输出适当的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 . "'>";
}