web-dev-qa-db-fra.com

Comment ajouter des "catégories de publication" à la barre latérale du tableau de bord

Je travaille actuellement avec une entreprise pour faire quelques tweeks de base sur leur site WordPress et j'ai remarqué qu'ils ont ceci sur leur barre latérale:

 enter image description here 

Je regarde en particulier les sections "Clients", "Offres", "Portefeuille" et "Offre du curseur", je ne les ai jamais vues auparavant et je pense qu'elles n'ont pas été ajoutées avec un plugin. Il semble qu’il s’agisse de catégories de publications, car elles portent la même icône d’épinglette que la section "Publications". Quelqu'un peut-il expliquer en quoi ils consistent, comment ils fonctionnent et comment les ajouter?

Merci

2
AdamMcquiff

Les types de publication WordPress Core sont post et page et sont visibles dans le menu admin. Autres que ceux-ci peuvent être soit un type de publication personnalisé enregistré ou une page de menu.

Une page de menu peut être ajoutée avec la fonction add_menu_page() , et une procédure similaire peut être utilisée avec register_post_type() , où un type de publication enregistrée obtient son propre élément de menu dans lequel les arguments suivants sont true:

<?php
$args = array(
        'show_ui'   => true,
        'show_in_menu' => true
    );

register_post_type( 'mycpt', $args );

Notez que register_post_type() est une fonction de plugin-territoire. Mais certains thèmes les incluent dans leur functions.php. Et dans ce cas, c'est également possible, un thème parent ne les inclut pas, mais un thème enfant l'a fait dans son functions.php. :)

1
Mayeenul Islam

Je crois que ceci est le type Custom Post de WordPress. Le type de message personnalisé fonctionnera de la même manière que le message, vous pouvez créer une catégorie différente pour chaque type de message et également créer des archives différentes et une seule page. Je poste un exemple de code de type de poste si vous souhaitez en expérimenter davantage. Ce code vous suffit de copier et coller dans function.php de votre thème ou vous pouvez le mettre dans différents fichiers .php et vous pouvez require_once dans le fichier function.php comme je le fais require_once('custom-post-type/team.php'); tous les fichiers de type post là-bas et le rendent nécessaire dans le fichier de fonction.

<?php
/* Custom Post Type ===> team_member */
add_action( 'init', 'register_cpt_team_member' );
function register_cpt_team_member() {
$labels = array( 
    'name' => _x( 'Team Member', 'team_member' ),
    'singular_name' => _x( 'Team Member', 'team_member' ),
    'add_new' => _x( 'Add New', 'team_member' ),
    'add_new_item' => _x( 'Add New Team Member', 'team_member' ),
    'edit_item' => _x( 'Edit Team Member', 'team_member' ),
    'new_item' => _x( 'New Team Member', 'team_member' ),
    'view_item' => _x( 'View Team Member', 'team_member' ),
    'search_items' => _x( 'Search Team Member', 'team_member' ),
    'not_found' => _x( 'No Team Member found', 'team_member' ),
    'not_found_in_trash' => _x( 'No Team Member found in Trash', 'team_member' ),
    'menu_name' => _x( 'Team Member', 'team_member' ),
);
$args = array( 
    'labels' => $labels,
    'hierarchical' => false,       
    'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'custom-fields', 'revisions', 'page-attributes' ),
    //'taxonomies' => array('post_tag'),
    'public' => true,
    'show_ui' => true,
    'show_in_menu' => true, 
    'menu_icon' => 'dashicons-admin-users',     
    'show_in_nav_menus' => true,
    'publicly_queryable' => true,
    'exclude_from_search' => false,
    'has_archive' => true,
    'query_var' => true,
    'can_export' => true,
    'rewrite' => array('slug' => 'team_member'),
    'capability_type' => 'post'
);
register_post_type( 'team_member', $args );
flush_rewrite_rules(); // <- do this only once!
}
?>

Si vous souhaitez connaître plus de détails sur le type de message personnalisé, reportez-vous au codex wordpress. https://codex.wordpress.org/Post_Types

0
Chirag S Modi