Réalisateur:
Genre: ID, 'movie_reviews_movie_genre', ");?>
Évaluation: '; else echo ''; ?>
Avant de plonger dans ce didacticiel, veuillez parcourir mon premier didacticiel sur les types de publication personnalisés, où j’ai expliqué certains des aspects importants des CPT (types de publication personnalisés). Dans ce tutoriel, nous explorerons plus en détail cette merveilleuse fonctionnalité dans WordPress..
Ce tutoriel explique comment créer des taxonomies personnalisées, des colonnes admin, des filtres de taxonomie et une page d'archivage pour votre CPT. Alors commençons.
Les taxonomies sont un excellent moyen de regrouper des éléments et nous aident à rechercher des publications appartenant à un groupe spécifique. Dans WordPress, nous utilisons généralement les catégories et les balises comme taxonomies. Les étapes ci-dessous expliquent comment créer des taxonomies personnalisées pour votre CPT.
Ouvrez votre fichier de plugin, dans notre cas Movie-Reviews.php et ajoutez le code suivant pour enregistrer la fonction personnalisée.
add_action ('init', 'create_my_taxonomies', 0);
function create_my_taxonomies () register_taxonomy ('movie_reviews_movie_genre', 'movie_reviews', array ('labels' => array ('name' => 'Genre du film', 'add_new_item' => 'Ajouter un nouveau genre de film', 'new_item_name' = > "Nouveau genre de film", 'show_ui' => true, 'show_tagcloud' => false, 'hierarchical' => true));
Ici le register_taxonomy
function fait tout le travail difficile pour créer une taxonomie personnalisée (dans notre cas une catégorie) avec le nom 'movie_reviews_movie_genre
'pour le type de message personnalisé'critiques de films
'. Les étiquettes définissent les différentes chaînes utilisées dans la section admin de la taxonomie.
'show_ui' => true
est utilisé pour rendre l'éditeur de taxonomie visible dans le tableau de bord.'show_tagcloud' => false
décoder si le nuage de tags doit être visible. Dans notre cas c'est désactivé.'hierarchical' => true
décode le format de la taxonomie personnalisée.Remarque: 'hierarchical' => false
convertit les catégories en balises.
Après avoir sauvegardé le Movie-Reviews.php fichier, ouvrez votre fichier de modèle personnalisé, dans notre cas single-movie_reviews.php et ajoutez ce qui suit a souligné code pour rendre les catégories visibles dans nos messages.
'critiques de films', ); $ loop = new WP_Query ($ mypost); ?> have_posts ()): $ loop-> the_post ();?>> Titre:
Réalisateur:
Genre: ID, 'movie_reviews_movie_genre', ");?>
Évaluation: '; else echo ''; ?>
Ici, nous avons ajouté une taxonomie personnalisée "Genre de film" dans nos critiques de films CPT. Maintenant, nous pourrons ajouter de nouvelles catégories à partir du panneau d’administration et attribuer chacune d’elles à notre CPT..
Dans la page de liste CPT d'administrateur WordPress, il existe par défaut deux colonnes - Date et Commentaires - à travers lesquelles nous pouvons trier ces éléments CPT. Pour ajouter des colonnes et un tri, suivez les étapes ci-dessous..
Ouvrez le fichier plugin Movie-Reviews.php et ajoutez la ligne de code suivante pour enregistrer une fonction à appeler lors de la préparation de la page de liste de critiques de films.
add_filter ('manage_edit-movie_reviews_columns', 'mes_colonnes');
Ici nous avons utilisé le filtre variable manage_edit- (Custom_Post_Type) _columns
, qui passe la liste des colonnes du CPT comme argument de la fonction.
function mes_colonnes ($ colonnes) $ colonnes ['movie_reviews_director'] = 'Réalisateur'; $ columns ['movie_reviews_rating'] = 'Rating'; unset ($ columns ['commentaires']); retourne $ colonnes;
Ici nous avons ajouté deux colonnes: Réalisateur et Évaluation dans le panneau d'administration du CPT et a également supprimé la colonne Commentaires de la liste.
Enregistrer une fonction pour remplir les colonnes.
add_action ('manage_posts_custom_column', 'populate_columns');
function populate_columns ($ column) if ('movie_reviews_director' == $ column) $ movie_director = esc_html (get_post_meta (get_the_ID (), 'movie_director', true)); echo $ movie_director; elseif ('movie_reviews_rating' == $ colonne) $ movie_rating = get_post_meta (get_the_ID (), 'movie_rating', true); echo $ movie_rating. ' étoiles';
Ici, étant donné que la fonction est exécutée lorsque l’une des colonnes CPT est rendue, elle vérifie les colonnes actuellement demandées avant de les renvoyer en écho. Nous avons utilisé le get_the_ID ()
fonction pour récupérer l'index de la ligne en cours, puis à son tour a utilisé le get_post_meta
pour récupérer les données dans la colonne.
Enregistrez maintenant une fonction à appeler lorsque WordPress identifie les colonnes pouvant être triées dans CPT.
add_filter ('manage_edit-movie_reviews_sortable_columns', 'sort_me');
function sort_me ($ columns) $ columns ['movie_reviews_director'] = 'movie_reviews_director'; $ columns ['movie_reviews_rating'] = 'movie_reviews_rating'; retourne $ colonnes;
Cette fonction identifie deux colonnes pour les rendre triables, puis renvoie le tableau. Mais notre travail n'est pas encore terminé.
add_filter ('request', 'column_ordering'); add_filter ('request', 'column_orderby'); function column_orderby ($ vars) if (! is_admin ()) renvoie $ vars; if (isset ($ vars ['orderby']) && 'movie_reviews_director' == $ vars ['orderby']) $ vars = array_merge ($ vars, array ('meta_key' => 'movie_director', 'orderby' = > 'meta_value')); elseif (isset ($ vars ['orderby']) && 'movie_reviews_rating' == $ vars ['orderby']) $ vars = array_merge ($ vars, array ('meta_key' => 'movie_rating', 'orderby' => 'meta_value_num')); return $ vars;
La fonction ci-dessus est associée au filtre de requête et ajoute des éléments au tableau de requête, en fonction des variables de l'URL de requête. En fait, WordPress ne sait pas comment classer les champs "Directeur de film" ou "Classement de film", nous devons donc apprendre à WordPress comment le faire via cette fonction..
Nous avons ajouté avec succès deux colonnes triables dans la section admin.
Nous verrons ici comment les taxonomies personnalisées (dans ce cas, les catégories) peuvent être utilisées comme filtre supplémentaire dans la page de liste des CPT dans l’administrateur de WordPress, afin que les administrateurs puissent afficher les éléments CPT appartenant à une catégorie spécifique..
Ouvrez votre fichier plugin et ajoutez le code suivant pour enregistrer une fonction à appeler lorsque WordPress se prépare à afficher la liste déroulante des filtres..
add_action ('restrict_manage_posts', 'ma_filter_list');
function my_filter_list () $ screen = get_current_screen (); global $ wp_query; if ($ screen-> post_type == 'movie_reviews') wp_dropdown_categories (array ('show_option_all' => 'Afficher tous les genres de film', 'taxonomy' => 'movie_reviews_movie_genre', 'name' => 'movie_reviews_movie_genre', 'orderby '=>' name ',' selected '=> (isset ($ wp_query-> query [' movie_reviews_movie_genre ']))? $ wp_query-> query [' movie_reviews_movie_genre ']: "),' hierarchical '=> false,' profondeur '=> 3,' show_count '=> false,' hide_empty '=> true,));
Ici, nous avons utilisé une variable globale pour connaître le type de publication qui est affiché et également utilisé une variable de requête post pour vérifier s'il existe déjà un filtre et définir le filtre en conséquence. le wp_dropdown_categories
La fonction est utilisée pour afficher toutes les taxonomies enregistrées avec Movie Genres. Le 'commandé par
','show_count
','hide_empty
','profondeur
'etc. sont différents arguments spécifiant le tri, les éléments d'affichage comptent pour chaque catégorie, masquent les catégories non associées, déterminent la profondeur maximale à afficher pour les catégories hiérarchiques, respectivement.
Maintenant, une fois la liste déroulante du filtre préparée, nous écrirons du code pour afficher les résultats filtrés. Enregistrer une fonction à appeler lors de la préparation de la requête post-affichage.
add_filter ('parse_query', 'perform_filtering');
function perform_filtering ($ query) $ qv = & $ query-> query_vars; if (($ qv ['movie_reviews_movie_genre']) && is_numeric ($ qv ['movie_reviews_movie_genre'])) $ term = get_term_by ('id', $ qv ['movie_reviews_movie_genre'], 'movie_reviews_movie_genre'); $ qv ['movie_reviews_movie_genre'] = $ term-> slug;
le perform_filtering
La fonction reçoit l’objet post-requête WordPress actuel, puis commence par obtenir un pointeur sur les variables de requête stockées dans l’objet de la requête. Il vérifie ensuite si un genre de film fait partie des variables de la requête, puis exécute la requête..
Maintenant, vous pourrez utiliser le filtre pour afficher les films par leur genre.
Comme nous avons créé un modèle personnalisé pour notre CPT, nous pouvons également créer une page d’archive personnalisée remplaçant le modèle d’archive par défaut..
Ouvrez le fichier plugin Movie-Reviews.php et l'ajouter le code en surbrillance dans le include_template_function
une fonction.
function include_template_function ($ template_path) if (get_post_type () == 'movie_reviews') if (is_single ()) // vérifie si le fichier existe déjà dans le thème, // sinon le sert depuis le plugin if ($ theme_file = replace_template (array ('single-movie_reviews.php'))) $ template_path = $ theme_file; else $ template_path = plugin_dir_path (__FILE__). '/single-movie_reviews.php'; elseif (is_archive ()) if ($ theme_file = localiser_template (array ('archive-movie_reviews.php'))) $ template_path = $ theme_file; else $ template_path = plugin_dir_path (__FILE__). '/archive-movie_reviews.php'; return $ template_path;
WordPress cherche dans le répertoire du thème un fichier de modèle d'archive avant d'utiliser le fichier par défaut. Cette fonction vérifie si l'utilisateur a fourni un modèle d'archive dans le répertoire du thème, sinon il recherche le fichier dans le dossier du plugin..
Enregistrez et fermez le fichier de plug-in, puis créez un nouveau fichier appelé archive-movie_reviews.php et ajoutez le code suivant.
Critiques de films
max_num_pages) && $ wp_query-> max_num_pages> 1) ?>
Titre Réalisateur ">
Ici, nous avons utilisé la boucle pour parcourir les entrées de publication, puis les afficher à l’aide d’un tableau. Nous avons également défini un menu de navigation s'il y a plus d'éléments que le nombre maximum configuré dans les paramètres WordPress. Les menus de navigation sont affichés à l’aide des touches next_post_links
et previous_post_links
les fonctions.
Nous avons utilisé le global wp_query
objet contenant les données sur la requête en cours d'exécution, afin de rendre le contenu de la page. le get_post_meta
la fonction a été utilisée pour récupérer des données de champ personnalisées.
Enregistrez le fichier et vérifiez la page d'archive pour la liste d'archives de critiques de films.
Nous arrivons à la fin de ce tutoriel. J'espère que vous avez compris l'importance des types de publications personnalisées. Il y a plus à explorer, il suffit de jouer avec.
Merci de votre lecture et n'hésitez pas à donner votre avis.