1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <?php
const CODE_PAGE_TEST1 = "code_page_test1";
const CODE_SECTION1 = "code_page_test1__section1";
const LISTE_CHAMPS = [
[
"code_champ" => "HH_options_adresse",
"titre" => "Adresse complète",
],
[
"code_champ" => "HH_options_telephone",
"titre" => "Téléphone",
],
];
add_action("mon_extension/generer_champ_texte", function ($arguments) {
?>
<input
type="text"
name="<?php echo htmlspecialchars($arguments["code_champ"]);?>"
value="<?php echo htmlspecialchars(get_option($arguments["code_champ"]));?>"
/>
<?php
}, 10, 1);
add_action("mon_extension/generer_page_test1", function () {
add_settings_section(CODE_SECTION1, "Paramètres", NULL, CODE_PAGE_TEST1);
foreach (LISTE_CHAMPS as $champ) {
register_setting(
CODE_PAGE_TEST1
, $champ["code_champ"]
);
add_settings_field(
$champ["code_champ"]
, $champ["titre"]
, function ($arguments) {
do_action("mon_extension/generer_champ_texte", $arguments);
}
, CODE_PAGE_TEST1
, CODE_SECTION1
, $champ
);
}
// affichage des champs
do_settings_sections(CODE_PAGE_TEST1);
});
add_action("admin_menu", function () {
add_menu_page(
"Titre page Test 1"
, "Titre page Test 1"
, "manage_options"
, CODE_PAGE_TEST1
, function () {
do_action("mon_extension/generer_page_test1");
}
);
}); |
Partager