web-dev-qa-db-fra.com

wordpress type de message personnalisé supprimer les éléments de menu en double

J'ai enregistré un nouveau type de contenu avec les éléments suivants -

register_post_type('news', array(
    'labels' => array(
        'name' => __( 'News'),
        'singular_name' => __( 'News'),     
        'add_new' => _x( 'Add New News', 'News'),
        'add_new_item' => __( 'Add New News'),
        'edit_item' => __( 'Edit News'),
        'new_item' => __( 'New News'),
        'view_item' => __( 'View News Details'),
        'search_items' => __('Search News')         
      ),
    'public' => true,
    'show_ui' => true,
    'menu_position' => 6,
    'has_archive' => false,
    'rewrite' => array('slug'=>'news'),
    'supports' => array('title', 'editor' ),
    'taxonomies' => array('category'),
    'menu_icon' => plugins_url('icons/news.png', __FILE__),
    )
);

Ceci génère un élément de menu admin comme suit -

enter image description here

ou

enter image description here

Est-il possible de supprimer le lien répété pour l'élément de menu News qui apparaît sur la variable hover de l'élément de menu principal. En effet, l'élément de menu principal News (en caractères gras) amène l'administrateur à la même page que l'élément de sous-menu news. En bref, je veux avoir seulement deux options en tant que sous-menus. Ce sont Ajouter des nouvelles et catégories . Est-ce possible?

J'ai essayé d'utiliser ce qui suit--

add_action('admin_menu', 'remove_news_subitem');
function remove_news_subitem() {
    global $submenu;
    unset($submenu['edit.php?post_type=news']);
}

Mais cela supprime tous les sous-menus.

Je crois qu'aucun tel crochet n'est présent pour le faire. Et la seule option que je pouvais imaginer est de modifier les fichiers de base. Mais que je vivement ne veuille pas faire.

Manière possible de faire cela en utilisant jQuery lorsque les éléments de menu sont rendus sur domReady. Mais c'est moche. Peut-il être fait à partir de php lui-même?

2
SachinGutte

Vient d'ajouter 'all_items' => __( '' ), dans le tableau d'étiquettes.

Remplacez votre code par le code ci-dessous

register_post_type('news', array(
    'labels' => array(
        'name' => __( 'News'),
        'singular_name' => __( 'News'),     
        'add_new' => _x( 'Add New News', 'News'),
        'add_new_item' => __( 'Add New News'),
        'edit_item' => __( 'Edit News'),
        'new_item' => __( 'New News'),
        'view_item' => __( 'View News Details'),
        'all_items'          => __( '' ),
        'search_items' => __('Search News')         
      ),
    'public' => true,
    'show_ui' => true,
    'menu_position' => 6,
    'has_archive' => false,
    'rewrite' => array('slug'=>'news'),
    'supports' => array('title', 'editor' ),
    'taxonomies' => array('category'),
    'menu_icon' => plugins_url('icons/news.png', __FILE__),
    )
);
2
dipali