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:
1 2 3 4 5 6 7 8 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 |
function mioplugin_default_sub_pages() { add_plugins_page( __( 'Cool Default Sub Page', 'mio-plug-in' ), __( 'Custom Sub Page', 'mio-plug-in' ), 'manage_options', 'mioplugin-subpage', 'mioplugin_settings_page_markup' ); } add_action( 'admin_menu', 'mioplugin_default_sub_pages' ); |
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:
1 2 3 4 5 6 7 |
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' ); |