/**
* Plugin Name: Mon Plugin de QCM
* Plugin URI: https://mon-site-web.com/
* Description: Un plugin simple pour créer et gérer des questionnaires à choix multiples (QCM).
* Version: 1.0.0
* Author: Votre Nom
* Author URI: https://votre-site-web.com/
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: mon-qcm
* Domain Path: /languages
*/
// NON NÉGOCIABLE : Sécurité. Empêche l'accès direct au fichier.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Enregistre notre Custom Post Type "QCM".
* C'est ce qui crée le menu "QCMs" dans l'administration de WordPress.
*/
function mon_qcm_register_post_type() {
// Labels pour l'interface d'administration.
// On utilise l'internationalisation dès le début.
$labels = array(
'name' => _x( 'QCMs', 'Post Type General Name', 'mon-qcm' ),
'singular_name' => _x( 'QCM', 'Post Type Singular Name', 'mon-qcm' ),
'menu_name' => __( 'QCMs', 'mon-qcm' ),
'name_admin_bar' => __( 'QCM', 'mon-qcm' ),
'archives' => __( 'Archives des QCMs', 'mon-qcm' ),
'attributes' => __( 'Attributs du QCM', 'mon-qcm' ),
'parent_item_colon' => __( 'QCM Parent :', 'mon-qcm' ),
'all_items' => __( 'Tous les QCMs', 'mon-qcm' ),
'add_new_item' => __( 'Ajouter un nouveau QCM', 'mon-qcm' ),
'add_new' => __( 'Ajouter', 'mon-qcm' ),
'new_item' => __( 'Nouveau QCM', 'mon-qcm' ),
'edit_item' => __( 'Modifier le QCM', 'mon-qcm' ),
'update_item' => __( 'Mettre à jour le QCM', 'mon-qcm' ),
'view_item' => __( 'Voir le QCM', 'mon-qcm' ),
'view_items' => __( 'Voir les QCMs', 'mon-qcm' ),
'search_items' => __( 'Rechercher un QCM', 'mon-qcm' ),
'not_found' => __( 'Non trouvé', 'mon-qcm' ),
'not_found_in_trash' => __( 'Non trouvé dans la corbeille', 'mon-qcm' ),
'featured_image' => __( 'Image mise en avant', 'mon-qcm' ),
'set_featured_image' => __( 'Définir l\'image mise en avant', 'mon-qcm' ),
'remove_featured_image' => __( 'Supprimer l\'image mise en avant', 'mon-qcm' ),
'use_featured_image' => __( 'Utiliser comme image mise en avant', 'mon-qcm' ),
'insert_into_item' => __( 'Insérer dans le QCM', 'mon-qcm' ),
'uploaded_to_this_item' => __( 'Téléversé sur ce QCM', 'mon-qcm' ),
'items_list' => __( 'Liste des QCMs', 'mon-qcm' ),
'items_list_navigation' => __( 'Navigation de la liste des QCMs', 'mon-qcm' ),
'filter_items_list' => __( 'Filtrer la liste des QCMs', 'mon-qcm' ),
);
// Arguments pour la fonction register_post_type.
$args = array(
'label' => __( 'QCM', 'mon-qcm' ),
'description' => __( 'Permet de créer des questionnaires à choix multiples.', 'mon-qcm' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail' ), // Ce que notre CPT supportera.
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-forms', // L'icône dans le menu.
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
'rewrite' => array( 'slug' => 'qcm' ), // Le slug dans l'URL.
);
// Enregistrement du Custom Post Type.
register_post_type( 'qcm', $args );
}
// On "accroche" notre fonction au hook 'init' de WordPress.
add_action( 'init', 'mon_qcm_register_post_type' );