web-dev-qa-db-fra.com

Comment ajouter une nouvelle page de plugin sous la page Options désirée?

Utilisation de Tutoriel sur les paramètres de l'API WordPress J'ai créé un nouveau menu personnalisé et les sous-menus correspondants. Chacun de mes menus a sa propre page. J'ai utilisé add_menu_page() et add_submenu_page() pour cela. ( Voici le code complet )

Admin --------
"Administrateur spécial
"Demande de prix

Maintenant, j'essaie de créer un plugin à des fins supplémentaires. Je souhaite intégrer mon plugin au menu personnalisé que j'ai créé précédemment.

J'ai placé une case à cocher indiquant "Activer l'offre de prix" dans la page "Administrateur spécial". Lorsque l'utilisateur active l'offre de prix, le plug-in entre en action. Ensuite, le plugin sera disponible dans la sous-page "Price Quotation".

Là, je ferai quelques pages à onglets sous la page Offre de prix avec certaines fonctionnalités.

J'ai essayé avec un plugin de base avec add_plugins_page():

<?php
/*
 * Plugin Name: Price Quotation
 * Plugin URI: http://www.example.com
 * Author: Mayeenul Islam
 * Author URI: http://www.example.com
 * Version: 1.0.0
 */
?>

<?php

function add_a_menu(){
    add_plugins_page(
        'Price Factor',
        'Price Factor',
        'edit_posts',
        'edit_private_posts',
        'price_factor_callback'
    );
}
add_action('admin_menu', 'add_a_menu');

function price_factor_callback(){
    echo "This is Price Quotation Page";
}

?>

Mais ce filtre admin_menu a ajouté le menu sous le menu par défaut "Plugins" par défaut. Comment puis-je arriver à appeler le ou les menus où je les ai choisis?

3
Mayeenul Islam

Utilisez add_submenu_page à la place.

 <?php add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function ); ?> 

$parent_slug devrait être l’un des suivants

For Dashboard: add_submenu_page( 'index.php', ... ); Also see add_dashboard_page()
For Posts: add_submenu_page( 'edit.php', ... ); Also see Also see add_posts_page()
For Media: add_submenu_page( 'upload.php', ... ); Also see add_media_page()
For Links: add_submenu_page( 'link-manager.php', ... ); Also see add_links_page()
For Pages: add_submenu_page( 'edit.php?post_type=page', ... ); Also see add_pages_page()
For Comments: add_submenu_page( 'edit-comments.php', ... ); Also see add_comments_page()
For Custom Post Types: add_submenu_page( 'edit.php?post_type=your_post_type', ... );
For Appearance: add_submenu_page( 'themes.php', ... ); Also see add_theme_page()
For Plugins: add_submenu_page( 'plugins.php', ... ); Also see add_plugins_page()
For Users: add_submenu_page( 'users.php', ... ); Also see add_users_page()
For Tools: add_submenu_page( 'tools.php', ... ); Also see add_management_page()
For Settings: add_submenu_page( 'options-general.php', ... ); Also see add_options_page()

Exemple:

add_submenu_page( 'tools.php', 'My Custom Submenu Page', 'My Custom Submenu Page', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page_callback' ); 
4
Giri