Page des paramètres du thème WordPress

Publié par Jean-Michel le

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_optionsest également faux, car il devrait s’agir d’un rappel à une fonction qui afficherait un contenu. Ainsi, par exemple, votre main_settings_callbackfonction.

DEUXIÈME ÉDITION :

Cela ne vous fonctionne probablement pas car dans l’appel de la add_settings_sectionfonction, vous passez le dernier paramètre theme-panelet cette page n’existe probablement pas. Ai-je raison? Essayez de remplacer ce paramètre par exemple par generalet il sortira sur la page de réglage principale.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *