Capitolo 3 Pagine secondarie per il settaggio

programmazione Plugin programmare wordpress

Per aggiungere un sottomenu si usa la funzione add_submenu_page. Utilizzando il menu creato al capitolo2, possiamo aggiungere il seguente codice:

add_submenu_page(
    'mioplugin',                             //slug del menu principale
    __( 'Plugin Feature 1', 'mio-plug-in' ), //titolo pagina
    __( 'Feature 1', 'mio-plug-in' ),        //titolo sottomenu
    'manage_options',                        //permessi di visualizzazione
    'mioplugin-feature-1',                   // nome slug
    'mioplugin_settings_subpage_markup'      //callback
  );

lo slug del menu principale può essere cambiato con il file del menu di wordpress che si vuole modificare, ma per una programmazione più corretta vedere sotto

Il callback richiama una funzione che può contenere il contenuto della pagina e il suo markup.
Un esempio basilare lo possiamo vedere aggiungendo una funzione con il seguente codice:

function mioplugin_settings_subpage_markup()
{
  // Double check user capabilities
  if ( !current_user_can('manage_options') ) {
      return;
  }
  ?>
  <div class="wrap">
    <h1><?php esc_html_e( get_admin_page_title() ); ?></h1>
    <p><?php esc_html_e( 'Some content.', 'mio-plug-in' ); ?></p>
  </div>
  <?php
}

con la funzione current_user_can() si controlla se l’utente ha i permessi per visualizzare una determinata posizione

Se volessimo aggiungere un sottomenu ad un menù di sistema si possono usare determiate funzioni, tipo: add_dashboard_page(), add_posts_page(), add_media_page(), add_pages_page(), add_comments_page(), add_theme_page(), add_plugins_page(), add_users_page(), add_management_page(), add_options_page().
Ad esempio se volessimo aggiungere un sottomenu al menu plugin di wordpress dovremmo scrivere questo codice:

La finzione mioplugin_settings_page_markup è descritta nel capitolo2

Per facilitare il settaggio del plugin è buona cosa creare un link diretto, dalla pagina di amministrazione dei plugin verso la pagina di settaggio. Questa operazione può essere fatta con questo codice:

function mioplugin_add_settings_link( $links ) {
    $settings_link = '<a href="admin.php?page=mioplugin">' . __( 'settaggio', 'mio-plug-in' ) . '</a>';
    array_push( $links, $settings_link );
  	return $links;
}
$filter_name = "plugin_action_links_" . plugin_basename( __FILE__ );
add_filter( $filter_name, 'mioplugin_add_settings_link' );

SCRIVI UN COMMENTO