Page des paramètres du thème WordPress
J’ai du mal à afficher mon « Hello World » sur la page de thème que j’ai créée. Tout semble au moins correct (mais ce n’est évidemment pas le cas) – qu’est-ce qui me manque ici ?
// Add Theme Options to menu
function add_theme_menu_item() {
add_theme_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "initialize_theme_options", null, 99);
}
add_action("admin_menu", "add_theme_menu_item");
/**
* Initializes the theme options page by registering the Sections,
* Fields, and Settings.
*
* This function is registered with the 'admin_init' hook.
*/
function initialize_theme_options() {
// First, we register a section. This is necessary since all future options must belong to one.
add_settings_section(
// ID used to identify this section and with which to register options
'main_settings_section',
// Title to be displayed on the administration page
'Main Theme Options',
// Callback used to render the description of the section
'main_settings_callback',
// Page
'theme-panel'
);
}
add_action('admin_init', 'initialize_theme_options');
// end initialize_theme_options
/* ------------------------------------------------------------------------ *
* Section Callbacks
* ------------------------------------------------------------------------ */
/**
* This function provides a simple description for the General Options page.
*
* It is called from the 'initialize_theme_options' function by being passed as a parameter
* in the add_settings_section function.
*/
function main_settings_callback() {
echo 'Hello world.';
}
// end main_settings_callback
Solution n°1 trouvée
OK j’ai compris.
https://codex.wordpress.org/Function_Reference/do_settings_sections
function initialize_theme_options() {
// First, we register a section. This is necessary since all future options must belong to one.
add_settings_section(
// ID used to identify this section and with which to register options
'main_settings_section',
// Title to be displayed on the administration page
'Main Theme Options',
// Callback used to render the description of the section
'main_settings_callback',
// Page
'theme-panel'
);
do_settings_sections('theme-panel');
}
Solution n°2 trouvée
C’est faux:
add_theme_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "initialize_theme_options", null, 99);
Les deux derniers paramètres ne devraient pas être là. Vérifiez cette fonction dans le codex ici.
ÉDITER:
De plus, le dernier paramètre (qui devrait être là) initialize_theme_options
est également faux, car il devrait s’agir d’un rappel à une fonction qui afficherait un contenu. Ainsi, par exemple, votre main_settings_callback
fonction.
DEUXIÈME ÉDITION :
Cela ne vous fonctionne probablement pas car dans l’appel de la add_settings_section
fonction, vous passez le dernier paramètre theme-panel
et cette page n’existe probablement pas. Ai-je raison? Essayez de remplacer ce paramètre par exemple par general
et il sortira sur la page de réglage principale.
0 commentaire