Maison Divers Chose ajouter un avis php. Comment créer des types de publications WordPress personnalisés. Afficher un type de publication personnalisé sur la page principale

Chose ajouter un avis php. Comment créer des types de publications WordPress personnalisés. Afficher un type de publication personnalisé sur la page principale

Obtenez un retour précieux de vos clients en leur donnant la liberté de partager librement leurs impressions. Laissez-les évaluer vos produits et/ou services directement sur votre site Web. Découvrez ci-dessous les principales fonctionnalités fournies en standard avec notre système d'évaluation en ligne.

    Avis et notes

    Intégrez PHP Review Script dans votre site Web et laissez les clients partager leur expérience avec les produits et services que vous proposez. Ils peuvent évaluer selon des critères et donner des commentaires positifs et négatifs.

    Plusieurs langues

    Le système de révision PHP peut parler non seulement l’anglais, mais aussi n’importe quelle langue dont vous pourriez avoir besoin. Vous pouvez traduire tous les titres et messages système à partir de la page d'administration en utilisant des identifiants uniques pour chaque morceau de texte.

    Critères de notation modifiables

    Selon le type d'entreprise, les administrateurs du système d'évaluation peuvent
    définir différents critères de notation à afficher dans le formulaire frontal.
    Chacun de ces critères est noté de 1 à 5 étoiles.

    Notifications par e-mail et SMS

    Configurez le système d'avis en ligne pour envoyer des alertes par e-mail et SMS lorsqu'un nouvel avis a été publié. Vous pouvez facilement spécifier quels utilisateurs recevront ces messages à partir du menu Utilisateurs.

    Plusieurs types d'utilisateurs

    Créez des types de clients illimités en fonction du secteur et des services utilisés. Les évaluations d'hôtels peuvent correspondre aux types d'utilisateurs suivants : famille avec enfants, couple, voyage d'affaires, etc. Ils apparaissent sous forme d'étiquettes dans les avis.

    Réactif et attrayant

    Le script d'évaluation et d'évaluation s'exécute sur tous les appareils, s'adaptant de manière transparente aux différentes tailles d'écran. En accord avec l'image de marque de votre site Web, vous pouvez choisir le thème frontal le mieux adapté parmi 10 options de couleurs.

    Une boîte de conseils rapides à côté du formulaire d'avis vous permet d'ajouter quelques mots pleins d'esprit et d'attirer les clients. Le système d'avis filtre les avis par type d'utilisateur. Les clients peuvent également évaluer les évaluations d'autres clients.

    Avec une licence de développeur, vous obtenez le code source et pouvez apporter des modifications personnalisées au script de révision PHP. Nous pouvons également modifier le système d’avis clients sur demande.

Premièrement, du point de vue de l’organisation du code, il serait préférable de regrouper toute la logique de révision dans un ou plusieurs fichiers incluables, puis de l’inclure sur les pages produits :

Include("includes/reviews.php");

De cette façon, les pages produits peuvent rester intactes et le même code d’évaluation peut facilement être utilisé ou modifié selon les besoins. Le script reviews.php ferait plusieurs choses :

  • Afficher le formulaire d'avis
  • Gérer le formulaire d'avis
  • Lister les avis existants
  • Gérer les actions secondaires, telles que signaler des avis ou des commentaires comme inappropriés, indiquer que les avis ont été utiles, ajouter des commentaires aux avis, indiquer que les commentaires sont utiles, etc.

J'espère que vous avez déjà fait beaucoup de développement Web, vous savez donc qu'un formulaire pour ajouter des avis ressemblerait à ceci :

Évaluez ce produit

5 4 3 2 1

De toute évidence, vous voudriez utiliser du CSS pour le rendre joli, mais c'est l'idée de base. Le principal problème est que l'ID du produit et le type de produit (ou tout ce que la base de données doit avoir pour associer un avis à un article) doivent être stockés dans des entrées cachées. Vous demanderiez au script PHP qui affiche le produit d'écrire ces valeurs dans les entrées.

Si une connexion est requise, vous pouvez ajouter un code (PHP) qui affiche le formulaire uniquement aux utilisateurs connectés ou imprime un commentaire indiquant que l'utilisateur doit se connecter pour évaluer le produit. De même, si vous disposez d'un système en place pour garantir qu'une personne n'évalue un produit qu'une seule fois, PHP vérifiera ce scénario avant d'afficher ce formulaire.

La soumission du formulaire pourrait accéder à une nouvelle page, mais l'utilisateur devra ensuite cliquer sur le bouton Retour pour revenir à la page du produit, ce qui n'est pas idéal. Je soumettrais plutôt le formulaire à la page produit. Par exemple, sur n'importe quel site Web dynamique, le même script PHP est utilisé pour afficher tout le contenu d'un type spécifique. Dans mon Commerce électronique sans effort avec PHP et MySQL book, le premier exemple de site utilise le script page.php pour afficher n'importe quelle page de contenu. L'attribut action du formulaire pointerait vers le même page.php . Vous pouvez y parvenir en laissant simplement l'attribut vide ou en utilisant PHP pour définir dynamiquement la valeur.

Si la page PHP qui répertorie les produits nécessite qu'une valeur identifiant le produit soit transmise dans l'URL, le formulaire devra également stocker cette valeur dans une entrée masquée. (Cela peut déjà être le cas, avec l'entrée product_id, selon la façon dont le site est configuré.) Deuxièmement, le script du produit devra également être mis à jour pour permettre à la valeur du produit d'être reçue via POST .

Pour que le script reviews.php sache quand gérer la soumission d'un formulaire, il peut vérifier comment le script a été accédé :

If ($_SERVER["REQUEST_METHOD"] == "POST") ( // Gère le formulaire.

Lorsque le formulaire d'évaluation est soumis, les données du formulaire doivent être validées. Vous devez également appliquer strip_tags() aux données pour empêcher les attaques Cross-Site Scripting (XSS) ou tout autre mauvais comportement. Et les valeurs non numériques seraient exécutées via une fonction d'échappement, telle que mysqli_real_escape_string() . Ou vous pouvez simplement utiliser des instructions préparées ou des procédures stockées pour une meilleure sécurité et de meilleures performances.

Si vous ajoutez une ancre à l'attribut d'action du formulaire action="page.php#reviews" l'utilisateur sera redirigé vers la section avis de la page lors de la soumission, ce qui est une bonne idée.

Si le script reviews.php gère également certaines des autres actions, critiques ou commentaires inappropriés, indicateurs utiles, etc., le script devra également surveiller ces soumissions. J'utiliserais des entrées cachées nommées « tâche » pour indiquer quelle action est entreprise.

Dans un article séparé, je montre comment utiliser Ajax pour un système de notation simple. Un code Ajax similaire pourrait également être utilisé pour le système de révision.

WordPress signifie personnalisation/personnalisation. Il a été créé de telle manière qu’absolument chaque section peut être personnalisée. Dans ce tutoriel, nous examinerons types de messages personnalisés, l’une des fonctionnalités les plus importantes et remarquables de WordPress, avec l’aide de laquelle WordPress a pu atteindre de nouveaux sommets.

Que sont les types de publications personnalisées ?

Disons que vous souhaitez que votre blog comporte une section distincte pour les critiques de films. En utilisant des types de publication personnalisés, vous pouvez créer un nouveau type, par exemple, Publications et Pages, qui contiendra un type de données différent. Il aura son propre menu d'administration, des pages spéciales pour l'édition, ses propres taxonomies et de nombreux autres outils nécessaires pour travailler pleinement avec les publications.

Les types de publication personnalisés sont un ensemble supplémentaire de paramètres d'administration qui existent parallèlement aux paramètres des types de publication par défaut tels que enregistrements, pages, fichiers joints, etc. Les types de publication personnalisés peuvent stocker tout type de données. Ils disposent d'un éditeur séparé, d'un téléchargeur de médias et utilisent la structure de table WordPress préexistante, ce qui facilite la gestion des données. Le principal avantage des types de publications personnalisés créés à l’aide de l’API WordPress est qu’ils sont compatibles avec les thèmes et modèles existants. De plus, grâce à l’utilisation de permaliens, les types de publications personnalisés interagissent bien avec les moteurs de recherche.

Pourquoi utiliser des types de publication personnalisés ?

Les types de publications personnalisés vous aident à stocker différents types de publications à différents endroits. Cela permet de séparer les publications régulières des autres. C'est ça.

Création d'un plugin pour un type de publication personnalisé

Nous allons créer un plugin pour un type de publication personnalisé qui affichera les meilleures critiques de films. Commençons.

Étape 1. Créer un dossier pour le plugin WordPress

Ouvrez votre dossier de plugins WordPress et créez un nouveau dossier Critiques de films.

Étape 2 : Créez un fichier PHP

Dans le dossier créé, créez un fichier PHP Movie-Reviews.php

Étape 3 : ajouter un en-tête

Ouvrez le fichier créé et collez le code de l'en-tête en haut.

Avant la balise de fermeture de la commande PHP, saisissez la ligne de code suivante create_movie_review . Une fois initialisé, il exécutera la fonction personnalisée appropriée à chaque fois que la page est générée.

Add_action("init", "create_movie_review");

Étape 5 : Exécuter la fonction

Code pour exécuter la fonction create_movie_review.

Fonction create_movie_review() ( register_post_type("movie_reviews", array("labels" => array("name" => "Critiques de films", "singular_name" => "Critique de film", "add_new" => "Ajouter un nouveau", "add_new_item" => "Ajouter une nouvelle critique de film", "edit" => "Modifier", "edit_item" => "Modifier la critique de film", "new_item" => "Nouvelle critique de film", "view" => "Afficher ", "view_item" => "Afficher la critique du film", "search_items" => "Rechercher des critiques de films", "not_found" => "Aucune critique de film trouvée", "not_found_in_trash" => "Aucune critique de film trouvée dans la corbeille", "parent" => "Critique du film parent"), "public" => true, "menu_position" => 15, "supports" => array("title", "editor", "comments", "thumbnail", " champs personnalisés"), "taxonomies" => array(""), "menu_icon" => plugins_url("images/image.png", __FILE__), "has_archive" => true)); )

La fonction register_post_type fera l’essentiel du travail dans notre cas. Dès son appel, il préparera la configuration WordPress nécessaire à une nouvelle publication utilisateur, y compris des sections supplémentaires pour l'administrateur. Deux types d'arguments sont transmis à la fonction : le nom unique du type de publication personnalisé et un tableau avec ses propriétés. Il s'agit d'un autre tableau avec différentes étiquettes qui indiquent quelles chaînes de texte seront affichées dans différentes parties du type de publication personnalisé, par exemple : "nom" affiche le nom du type de publication personnalisé dans le panneau de configuration, "modifier" et "afficher". boutons d'affichage Modifier Et Voir. Je pense que tous les autres arguments parlent d'eux-mêmes.

Ainsi, dans les arguments suivants :

  • "public" => true définit la visibilité du type de publication personnalisé à la fois dans le panneau de configuration d'administration et dans le front-end.
  • "menu_position" => 15 spécifie où dans le menu sera situé le type de publication personnalisé.
  • "supports" => array("title", "editor", "comments", "thumbnail", "custom-fields") spécifie les attributs de type de publication personnalisés qui seront affichés.
  • "taxonomies" => array("") crée des taxonomies personnalisées. Dans ce cas, ils ne sont pas définis.
  • "menu_icon" => plugins_url("images/image.png", __FILE__) affiche l'icône dans le menu admin.
  • "has_archive" => true permet l'archivage des types de publications personnalisés.

Vous pouvez en savoir plus sur les autres arguments utilisés dans les types de publication personnalisés sur la page WordPress Codex register_post_type.

Étape 6 : Icône pour le type de publication personnalisé

Enregistrez l'icône 16x16 pixels dans votre dossier plugin. Cela est nécessaire pour que le type de publication personnalisé ait une icône sur le panneau de configuration.

Étape 7 : Activez le plugin

Activez le plugin et le tour est joué, vous disposez d'un type de publication personnalisé avec la possibilité de modifier le texte, les paramètres des publications, les images, les commentaires et un éditeur de champs personnalisé.

Étape 8 : Ajouter une nouvelle entrée

Sélectionner Ajouter un nouveau pour ouvrir le panneau d'édition du type de publication personnalisé. Ajoutez le titre du film, révisez le texte et sélectionnez une vignette d'image.

Étape 9 : Publier

Publiez l'article et cliquez Voir la critique du film pour voir la critique du film créée.

Création de champs supplémentaires pour les types de publication personnalisés

Le mécanisme des champs supplémentaires (métaboxes) utilise le système de champs supplémentaires intégré à WordPress. Cela vous aide à ajouter des champs spécifiques aux types de publication personnalisés sans utiliser les champs personnalisés par défaut dans l'éditeur.

Étape 1 : Enregistrez une fonction personnalisée

Ouvrir le fichier Movie-Reviews.php et ajoutez le code suivant avant la balise de fermeture. Ce code enregistre une fonction qui sera appelée lors de la visite du panneau d'administration WordPress.

Add_action("admin_init", "mon_admin");

Étape 2 : Exécuter une fonction personnalisée

Ajoutez une exécution de fonction my_admin qui enregistre des champs supplémentaires et les associe au type de publication personnalisé movie_reviews.

Fonction my_admin() ( add_meta_box("movie_review_meta_box", "Détails de la critique du film", "display_movie_review_meta_box", "movie_reviews", "normal", "high"); )

Dans ce cas, la fonction add_meta_box est utilisée pour ajouter des champs supplémentaires à un type de publication personnalisé. À propos des attributs :

  • Attribut movie_review_meta_box obligatoire pour l'identifiant HTML
  • Texte des détails de la critique du film qui sera visible dans l'en-tête du champ supplémentaire
  • fonction de rappel display_movie_review_meta_box qui affiche le contenu de champs supplémentaires
  • movie_review est le nom du type de publication personnalisé où les champs supplémentaires seront affichés
  • normal définit où sur la page le bloc d'édition sera affiché
  • high détermine la priorité des champs affichés

Étape 3 : Exécutez la fonction display_movie_review_meta_box

ID, "movie_director", vrai));
$movie_rating = intval(get_post_meta($movie_review->ID, "movie_rating", true));
Réalisateur de cinéma

étoiles Ce code affiche le contenu de champs supplémentaires. Cela utilise une variable d'objet qui contient des informations sur chacune des critiques de films affichées dans le panneau d'édition. En utilisant cet objet, nous avons obtenu

Identifiant du message

et l'a utilisé pour interroger la base de données afin d'obtenir le nom et la note du réalisateur, qui à leur tour seraient affichés dans les champs de l'écran. Lors de l'ajout d'une nouvelle publication, la fonction get_post_meta renverra une chaîne vide et les champs supplémentaires finiront par être vides.

Étape 4 : Enregistrez la fonction de sauvegarde de l'enregistrement

add_action("save_post", "add_movie_review_fields", 10, 2);

function add_movie_review_fields($movie_review_id, $movie_review) ( // Vérifier le type de publication pour les critiques de films if ($movie_review->post_type == "movie_reviews") ( // Stocker les données dans la méta-table de publication si elles sont présentes dans les données de publication if (isset($ _POST["movie_review_director_name"]) && $_POST["movie_review_director_name"] != "") ( update_post_meta($movie_review_id, "movie_director", $_POST["movie_review_director_name"]); ) if (isset($_POST["movie_review_rating" ]) && $_POST["movie_review_rating"] != "") ( update_post_meta($movie_review_id, "movie_rating", $_POST["movie_review_rating"]); ) ) )

Cette fonction est exécutée lorsque les entrées sont enregistrées ou supprimées dans le panneau d'administration. Dans ce cas, le type de l'enregistrement résultant est vérifié, et si l'enregistrement est personnalisé, une vérification est à nouveau effectuée pour voir si les champs supplémentaires ont des valeurs, puis ces valeurs sont stockées dans ces champs.

Étape 6 : Désactiver les champs personnalisés standard

Lors de la création d'un type de publication personnalisé, nous avons spécifié la fonction create_movie_review. Supprimez l'élément custom-fields du tableau supports car nous n'en aurons plus besoin. Maintenant, si vous enregistrez le fichier et ouvrez le panneau d'édition Critiques de films, vous verrez deux champs dans les champs supplémentaires : Auteur de film Et Classement du film. Vous pouvez ajouter d'autres éléments de la même manière.

Créer un modèle pour un type de publication personnalisé

Il serait correct que chaque type d'enregistrement utilisateur utilise ses propres modèles pour afficher les données. Dans notre cas, nous allons créer un modèle qui affiche toutes les critiques de films ajoutées à l'aide d'un type de publication personnalisé. Critique du film.

Étape 1 : Enregistrez la fonction de lancement du modèle

Ouvrir le fichier Movie-Reviews.php et avant la balise de fermeture, ajoutez le code suivant. Ce code enregistre une fonction qui sera appelée lors de la visite du panneau d'administration WordPress.

Add_filter("template_include", "include_template_function", 1);

Étape 2 : Exécuter la fonction

function include_template_function($template_path) ( if (get_post_type() == "movie_reviews") ( if (is_single()) ( // vérifie d'abord si le fichier existe dans le thème, // sinon sert le fichier depuis le plugin if ($ theme_file = Locate_template(array ("single-movie_reviews.php"))) ( $template_path = $theme_file; ) else ( $template_path = plugin_dir_path(__FILE__) . "/single-movie_reviews.php"; ) ) ) return $template_path; )

Cela vérifie si le dossier de thème actuel a un modèle comme single-(post-type-name).php. S'il n'y est pas, alors la présence du modèle dans le dossier du plugin est vérifiée, où nous placerons notre modèle dans le cadre du plugin. Le gestionnaire d'événements template_include (hook) est utilisé pour modifier l'exécution normale du programme et forcer l'exécution d'un modèle spécial.

Étape 3 : Créer un fichier de modèle d'une seule page

Après avoir enregistré le fichier précédemment ouvert avec le plugin, créez un autre fichier appelé single-movie_reviews.php et collez-y le code suivant.

"film_reviews");$loop = new WP_Query($mypost);
>
?>
have_posts()) : $loop->the_post();?>
Titre: Directeur: "; } } ?>

Notation:

"; ) sinon ( écho " Dans ce cas, nous avons créé un modèle de page de base à l'aide d'une boucle. La fonction query_posts prend les éléments d'un type de publication personnalisé et les affiche en boucle. Il s’agit bien entendu d’un cycle très simple, vous pouvez le modifier selon vos besoins. Vous pouvez également utiliser les styles CSS nécessaires pour modifier l'apparence.

Attention

: Vous devez créer une nouvelle page à partir du panneau de configuration en utilisant le modèle créé. Étape 4 : Images Et Enregistrez deux images d'icônes d'étoile de 32 x 32 pixels dans votre dossier de plugin. Nommez-les en conséquence icône.png

gris.png types de messages personnalisés. C'est tout, désormais les critiques de films sont affichées sur une page séparée et triées par date.

| WordPress est conçu pour la personnalisation. Il a été créé de telle manière que chaque partie peut être personnalisée. Dans ce guide, nous aborderons l'une des fonctionnalités les plus puissantes de WordPress, connue sous le nom de |

, et comment WordPress s'est hissé au sommet grâce à cette fonctionnalité étonnante.

Télécharger les sources Que sont les types de publication personnalisés ? Disons que vous voulez faire sur votre blog section séparée pour les critiques de films. En utilisant des types de publication personnalisés, vous pouvez créer un nouveau type comme Messages ou

Pages, qui contiendra un ensemble de données différent. Il aura son propre menu d'administration, des pages d'édition séparées, sa propre taxonomie et d'autres fonctionnalités nécessaires à des publications à part entière. section séparée, Messages, Types de publication personnalisés- un nouvel ensemble de paramètres administratifs utilisés avec des types standard tels que Fichiers joints- Il est facile à utiliser avec les thèmes et modèles existants. Types de publication personnalisés également Optimisé pour le référencementà cause de ses permaliens.

Pourquoi utiliser des types de publication personnalisés ?

Les types de publications personnalisés vous aident à stocker différents types de publications dans différents compartiments. Ils séparent nos publications régulières des autres. Très simple !

Exemple de création d'un plugin Custom Post Type

Ici, nous allons créer un plugin pour afficher un nouveau type de publication qui montrera nos critiques de films. Commençons.

Étape 1. Créez un dossier de plugin WordPress

Ouvrez votre dossier de plugins WordPress et créez-en un nouveau appelé Critiques de films.

Étape 2. Créez un fichier PHP

Ouvrez le dossier et créez PHP fichier appelé Movie-Reviews.php.

Étape 3. Ajouter un en-tête

Ouvrez le fichier et ajoutez le code d'en-tête du plugin.

Avant la commande de fermeture PHP, entrez la ligne de code suivante pour exécuter une fonction personnalisée par son nom créer_movie_review lors de l'initialisation à chaque fois que la page est générée.

Add_action("init", "create_movie_review");

Étape 5. Exécutez la fonction

Exécuter une fonction créer_movie_review:

Fonction create_movie_review() ( register_post_type("movie_reviews", array("labels" => array("name" => "Critiques de films", "singular_name" => "Critique de film", "add_new" => "Ajouter un nouveau", "add_new_item" => "Ajouter une nouvelle critique de film", "edit" => "Modifier", "edit_item" => "Modifier la critique de film", "new_item" => "Nouvelle critique de film", "view" => "Afficher ", "view_item" => "Afficher la critique du film", "search_items" => "Rechercher des critiques de films", "not_found" => "Aucune critique de film trouvée", "not_found_in_trash" => "Aucune critique de film trouvée dans la corbeille", "parent" => "Critique du film parent"), "public" => true, "menu_position" => 15, "supports" => array("title", "editor", "comments", "thumbnail", " champs personnalisés"), "taxonomies" => array(""), "menu_icon" => plugins_url("images/image.png", __FILE__), "has_archive" => true)); )

Fonction registre_post_type fait la majeure partie du travail pour nous. Une fois appelé, il prépare l’environnement WordPress pour le nouveau type de publication personnalisé, y compris différentes sections dans l’administrateur. parties.

Cette fonction prend deux arguments: Le premier est le nom unique du type de publication personnalisé et le second est un tableau qui représente les propriétés du nouveau type de publication personnalisé. Voici un autre tableau contenant différentes étiquettes indiquant quelles chaînes de texte apparaîtront dans différentes parties du type de publication personnalisé, comme " nom" affiche le nom du type de publication personnalisé dans la console, " modifier" Et " voir" s'affichent respectivement dans les boutons Modifier Et Voir. Je pense que le reste parle de lui-même.

Arguments:

  • "public" => vrai- détermine la visibilité du type de publication personnalisé à la fois dans le panneau d'administration et dans la partie client.
  • "menu_position" => 15- indique un élément de menu pour un type d'entrée personnalisé.
  • "supporte" => tableau("titre", "éditeur", "commentaires", "vignette", "champs personnalisés") - définit les caractéristiques du type de publication personnalisé qui sera affiché.
  • "taxonomies" => tableau(" ")- crée des taxonomies personnalisées. Ils ne sont pas définis ici.
  • "menu_icon" => plugins_url("images/image.png", __FILE__ ) - affiche l'icône du menu administrateur.
  • "has_archive" => vrai- Permet l'archivage d'un type de publication personnalisé.

Sur la page WordPress Codex à propos de la fonctionnalité registre_post_type vous pouvez en savoir plus sur les arguments utilisés dans les types de publication personnalisés.

Étape 6. Icône pour le type de publication personnalisé

Enregistrer la taille de l'icône 16 x 16 pixels dans votre dossier de plugin actuel. Ceci est nécessaire pour l’icône de type de publication personnalisée dans la console.

Étape 7. Activez le plugin

Activez le plugin et hop, vous disposez d'un nouveau type de publication personnalisé doté d'un éditeur de texte, d'une gestion des publications et des images, de commentaires et d'un éditeur de champs personnalisé.

Étape 8 : Ajouter une nouvelle entrée

Cliquez sur Ajouter un nouveau pour accéder à l'éditeur de type de publication personnalisé. Écrivez le titre du film, la critique et la vignette de l'entrée.

Étape 9 : Publication

Publiez votre article et cliquez Voir la critique du film pour voir la critique du film créée.

Création de champs de boîte méta pour les types de publication personnalisés

Le moteur de méta-boîte s'appuie sur le système de méta-boîte intégré de WordPress et vous aide à ajouter les champs requis pour les types de publication personnalisés sans les champs personnalisés par défaut requis dans l'éditeur.

Étape 1 : Enregistrez une fonction personnalisée

Ouvrir le fichier Movie-Reviews.php et ajoutez le code suivant avant de fermer PHPétiqueter. Cela enregistre une fonction qui sera appelée lors de la visite de l'interface d'administration de WordPress.

Add_action("admin_init", "mon_admin");

Étape 2 : Exécuter une fonction personnalisée

Ajouter une exécution de fonction mon_admin, qui enregistre les métablocs et les associe à un type de publication personnalisé movie_reviews.

Fonction my_admin() ( add_meta_box("movie_review_meta_box", "Détails de la critique du film", "display_movie_review_meta_box", "movie_reviews", "normal", "high"); )

Voici la fonction add_meta_box utilisé pour ajouter des méta-blocs aux types de publication personnalisés.

Attributs:

  • movie_review_meta_box- attribut HTML requis identifiant.
  • Détails de la critique du film- texte visible en haut du méta-bloc.
  • display_movie_review_meta_box- un rappel qui affiche le contenu du méta bloc.
  • movie_reviews est le nom du type de publication personnalisé dans lequel le méta-bloc apparaîtra.
  • normale- définit la partie de la page où le bloc d'édition doit être affiché.
  • haut- détermine la priorité dans le contexte dans lequel les blocs seront affichés.

Étape 3 : Exécutez la fonction display_movie_review_meta_box

ID, "movie_director", vrai));
$movie_rating = intval(get_post_meta($movie_review->ID, "movie_rating", true));
Réalisateur de cinéma

Ce code affiche le contenu du méta-bloc. Ici, nous avons utilisé une variable objet qui contient des informations sur chaque critique de film affichée dans l'éditeur. En utilisant cet objet, nous avons obtenu IDENTIFIANT enregistrements et l'a utilisé pour interroger la base de données afin d'obtenir le nom et la note du directeur associé, ce qui a entraîné l'affichage des champs à l'écran. Lorsqu'une nouvelle entrée est ajoutée, get_post_meta renvoie une chaîne vide, ce qui entraîne l'affichage de champs vides dans le méta-bloc.

Étape 4 : Enregistrez la fonction de sauvegarde de la publication

add_action("save_post", "add_movie_review_fields", 10, 2);

Cette fonction est appelée lorsque les enregistrements sont enregistrés dans la base de données.

Étape 5. Appelez la fonction add_movie_review_fields

function add_movie_review_fields($movie_review_id, $movie_review) ( // Vérifier le type de publication pour les critiques de films if ($movie_review->post_type == "movie_reviews") ( // Stocker les données dans la méta-table de publication si elles sont présentes dans les données de publication if (isset($ _POST["movie_review_director_name"]) && $_POST["movie_review_director_name"] != "") ( update_post_meta($movie_review_id, "movie_director", $_POST["movie_review_director_name"]); ) if (isset($_POST["movie_review_rating" ]) && $_POST["movie_review_rating"] != "") ( update_post_meta($movie_review_id, "movie_rating", $_POST["movie_review_rating"]); ) ) )

Cette fonction est exécutée lorsque les entrées sont enregistrées ou supprimées du panneau d'administration. Ici, après avoir vérifié le type de données de publication reçu pour voir s'il s'agit d'un type de publication personnalisé, il vérifie si des valeurs ont été attachées aux éléments de la méta-boîte, puis stocke finalement les valeurs dans ces champs.

Étape 6 : Désactiver les champs personnalisés standard

Lors de la création d'un type de publication personnalisé, nous avons défini une fonction créer_movie_review. Supprimer l'élément champs personnalisés du tableau prend en charge parce que ce n'est plus nécessaire. Maintenant, si vous enregistrez le fichier et ouvrez l'éditeur Critiques de films, vous remarquerez deux champs dans le bloc méta appelé Auteur de film Et Classement du film. Vous pouvez ajouter d'autres éléments de la même manière.

Créer un modèle personnalisé pour un type de publication personnalisé

La bonne façon d’afficher les données de type de publication personnalisé consiste à utiliser des modèles personnalisés pour chaque type de publication personnalisé. Ici, nous devons créer un modèle qui affiche toutes les critiques de films ajoutées à l'aide d'un type de publication personnalisé. Critique du film.

Étape 1. Enregistrez une fonction pour le modèle

Ouvrir le fichier Movie-Reviews.php et ajouter avant la balise de fermeture PHP code suivant. Il enregistrera une fonction à appeler lors de la visite de l’interface d’administration de WordPress.

Add_filter("template_include", "include_template_function", 1);

Étape 2. Exécutez la fonction

function include_template_function($template_path) ( if (get_post_type() == "movie_reviews") ( if (is_single()) ( // vérifie d'abord si le fichier existe dans le thème, // sinon sert le fichier depuis le plugin if ($ theme_file = Locate_template(array ("single-movie_reviews.php"))) ( $template_path = $theme_file; ) else ( $template_path = plugin_dir_path(__FILE__) . "/single-movie_reviews.php"; ) ) ) return $template_path; )

Voici le code recherchant un modèle single-(post-type-name).php dans le dossier du thème actuel. S'il n'y est pas, il recherche dans le dossier du plugin le modèle que nous avons fourni dans le cadre du plugin. Crochet modèle_include a été utilisé pour modifier le comportement standard et appliquer un modèle spécifique.

Étape 3 : Créer un fichier de modèle d'une seule page

Après avoir enregistré le fichier du plugin ouvert, créez-en un autre PHP fichier appelé single-movie_reviews.php et collez-y le code suivant.

"film_reviews");$loop = new WP_Query($mypost);
>
?>
have_posts()) : $loop->the_post();?>
Titre: Directeur: "; } } ?>

Ici, nous avons créé modèle de page de base en utilisant une boucle. Fonction requête_posts récupère les éléments d'un type de publication personnalisé et les affiche à l'aide d'une boucle. Bien sûr, il ne s’agit que d’une boucle de base et vous pouvez jouer avec comme bon vous semble. Vous pouvez également utiliser CSS styles pour formater les éléments.

Veuillez noter: Vous devez créer une nouvelle page depuis la console en utilisant le modèle que vous venez de créer.

Étape 4. Images

Vous devez enregistrer deux images d'icônes 32 x 32 pixels dans votre dossier plugin. Nommez-les Étape 4 : Images Et Enregistrez deux images d'icônes d'étoile de 32 x 32 pixels dans votre dossier de plugin. Nommez-les en conséquence. Ça y est, désormais les critiques de films sont affichées sur une page séparée, triées par date.

À l'avenir, je décrirai davantage de fonctionnalités de vos propres types personnalisés, telles que : la création de pages d'archives, la création de taxonomies personnalisées, de colonnes personnalisées, etc.

Nous inclurons également une fonctionnalité d'éditeur de publication Champs personnalisés (champs personnalisés ou personnalisés) pour chaque type et afficher les champs dans de nouveaux modèles.

Dans WordPress, les types de publication personnalisés vous donnent un contrôle total sur la manière d'afficher le contenu à vos utilisateurs. Si vous créez des articles sur votre blog, vous pouvez créer des styles personnalisés uniquement pour ces articles. Si vous écrivez des critiques sur de la musique ou des films, vous pouvez ajouter des zones de saisie supplémentaires dans les articles de votre choix, et elles n'apparaîtront pas dans les autres articles de blog.

Mais avant de continuer, comprenons ce que sont les publications des utilisateurs.

Quels sont les types de publications personnalisées WordPress ?

En bref, les types de publications personnalisés WordPress vous permettent de trier les publications en fonction de leur contenu. Dans WordPress, les types de publication par défaut sont Post, Page, Media, etc.

En règle générale, vous rédigez tous vos messages dans la section Messages de la console d'administration, puis leur attribuez une catégorie. Toutes les entrées de différents types se trouvent dans une seule liste, ce qui rend difficile leur distinction par type de contenu.

Les types de publications personnalisés avec leurs propres liens dans la console d'administration vous amènent à une liste de publications de ce type. Les publications créées de cette manière peuvent se voir attribuer des catégories comme une publication ordinaire, vous avez donc la liberté absolue de trier et de présenter les publications comme vous le souhaitez.

Dans l'exemple ci-dessus, si un utilisateur accède à la section de la base de données de films de votre site, les critiques ne seront pas incluses. Si vous créez des catégories « Action » et « Romance », par exemple, vos utilisateurs pourront accéder à la catégorie Film d'action et voir toutes les critiques et films de la catégorie.

Lorsque vous créez un nouveau type de publication, vous disposez de nombreux paramètres, tels que l'emplacement du lien dans le menu d'administration, si ce type sera inclus dans les résultats de recherche, s'il prendra en charge l'affichage d'un fragment de texte, si les commentaires sont autorisés. , et ainsi de suite.

Vous pouvez modifier différents textes de titre (définis à l'aide d'un tableau $étiquettes), comme renommer Ajouter un nouveau message V Ajouter un nouveau film. Par exemple, vous pouvez renommer le texte Image en vedette V Ajouter une affiche.

Vous pouvez également activer la fonctionnalité de champs personnalisés dans votre éditeur de publication, qui est masquée par défaut et doit être activée via un lien Options d'écran en haut de l'éditeur.

En poursuivant l'exemple avec Films et critiques de films, les publications de films peuvent ajouter des champs personnalisés pour des paramètres tels que l'année de sortie, le réalisateur, les notes et bien d'autres avec une brève critique du film comme contenu de la publication.

Généralement, tout champ que vous créez est disponible dans n'importe quel type de publication, le plugin nécessite donc des restrictions sur chaque champ auquel il est accessible.

Création de nouveaux types de publication

Lorsque vous créez des modifications importantes sur WordPress, l’une des options d’implémentation disponibles consiste à créer un plugin. Vous pouvez également créer de nouveaux types de publication personnalisés dans le fichier fonctions.php. Pour ce guide, nous Créons un plugin et continuons à utiliser l'exemple avec la base de données movie/reviews.

Pour créer un type de publication personnalisé, vous devez écrire plusieurs fonctions qui appellent une fonction WordPress appelée registre_post_type() avec deux paramètres. Votre fonction devraitêtre lié à un crochet d'action initialisation, sinon le type de publication personnalisé ne sera pas enregistré correctement.

// La fonction personnalisée DOIT être connectée au hook d'action d'initialisation add_action("init", "lc_register_movie_post_type"); // Une fonction personnalisée qui appelle la fonction register_post_type lc_register_movie_post_type() ( // Définit divers morceaux de texte, $labels est utilisé dans le tableau $args $labels = array("name" => _x("Films", "post type general name"), "singular_name" => _x("Movie", "post type singular name"), ...); // Définir diverses informations sur le type de publication $args = array("labels" => $ labels, "description" => "Mon type de publication personnalisé", "public" => true, ...); // Enregistre le type de publication du film avec toutes les informations contenues dans le tableau $arguments register_post_type("movie", $ arguments);

Toutes les fonctions personnalisées doivent être préfixées pour éviter les conflits avec d'autres plugins ou fonctions de thème. Le préfixe LC sera utilisé ici.

Deux paramètres pour la fonction registre_post_type() Ce:

  1. Nom du type d'enregistrement, 20 caractères maximum, et ne doit pas contenir d'espaces ni de majuscules.
  2. Un tableau associatif appelé $args, qui contient des informations sur le type d'enregistrement sous la forme de paires clé-valeur 'clé' => 'valeur'

Tableau $args

Clés les plus couramment utilisées pour un tableau $args indiqués ci-dessous, tous sont facultatifs :

  • étiquettes- tableau tableau, qui spécifie différents morceaux de texte, par exemple « Ajouter une nouvelle entrée » peut être renommé « Ajouter un nouveau film ». Les clés du tableau labels sont décrites ci-dessous avec des explications ;
  • description– une description courte et succincte du type d'enregistrement, elle peut être affichée dans des modèles de type, mais n'est utilisée nulle part ailleurs ;
  • publique– est le type de publication visible par l'auteur et les visiteurs, la valeur par défaut est FALSE, ce qui signifie qu'il n'apparaît même pas dans la console d'administration ;
  • exclure_from_search– si les enregistrements de ce type apparaîtront dans les résultats de recherche réguliers, la valeur par défaut est l'opposé de public ;
  • publiquement_queryable– ce type de publication peut-il être récupéré à l'aide d'une URL, telle que http://www.mywebsite.com/?post_type=movie, ou en utilisation avancée via la fonction query_posts(). La valeur par défaut est publique ;
  • show_ui– si les liens de menu et l'éditeur de messages sont connectés dans le panneau de configuration de l'administrateur. La valeur par défaut est publique ;
  • show_in_nav_menus– si des entrées de ce type seront ajoutées aux menus de navigation créés sur la page Apparence -> Menus, la valeur par défaut est publique ;
  • show_in_menu– si le lien du type de publication est affiché dans la navigation de la console d'administration. FAUX – masque le lien. VRAI – ajoute le lien en tant que nouveau lien de niveau supérieur. La saisie d'une ligne permet de placer un lien à l'intérieur d'un lien de niveau supérieur existant, c'est-à-dire de saisir des paramètres options-général.php le place sous le lien Paramètres.
  • show_in_admin_bar– ce type de post apparaîtra-t-il au-dessus de la barre d’administration, sous le lien + Nouveau
  • position_menu– la position du nouveau lien dans le menu de navigation de la console d'administration, 5 se trouve en dessous des Posts, 100 se trouve en dessous des Paramètres, la liste complète des postes se trouve dans le Codex WordPress
  • hiérarchique– si un enregistrement peut être attribué à un enregistrement parent, si la valeur est VRAIE, alors le tableau $ prend en charge doit contenir le paramètre 'page-attributes'
  • prend en charge– active sélectivement les fonctions de publication telles que : les images, les fragments de texte, les champs personnalisés, etc. S'il est défini sur FALSE, alors au lieu d'un tableau, l'éditeur pour ce type de publication est désactivé - utile si vous souhaitez fermer toutes les publications de ce type de publication. tapez depuis l'édition, mais laissez-les visibles (liste des valeurs du tableau)
  • taxonomies– un éventail de taxonomies pouvant être appliquées à des publications de ce type, les taxonomies doivent être déjà enregistrées – elles ne sont pas créées à partir d'ici !
  • has_archive– les publications de ce type auront-elles des pages d'archives, l'URL aura une structure de lien permanent et la partie descriptive de l'URL est le paramètre 1 de la fonction register_post_types(), c'est-à-dire que http://www.mywebsite.com/movie_reviews/ affichera tous les messages movie_review.
  • requête_var– VRAI ou FAUX détermine si une publication peut être affichée en interrogeant l'URL pour le type de publication et le nom de la publication, c'est-à-dire « http://www.mywebsite.com/? film=la-matrice‘. Si vous saisissez une ligne de texte, vous devez placer le texte après le caractère ? afin que « film » ressemble à « ? film=la-matrice‘.

Tableaux d'étiquettes

Première clé du tableau $args appelé étiquettes et doit être un tableau. Il spécifie divers morceaux de texte liés au type de publication. Comme il peut y avoir beaucoup de données ici, il est préférable de créer un tableau appelé $étiquettes pour leur stockage. Le code ci-dessus montre un peu plus clairement ce que cela signifie.

Vous trouverez ci-dessous quelques clés importantes pour le tableau labels, toutes sont facultatives :

  • nom– noms généraux pour le type de message, par exemple, films (films)
  • nom_singulier– un nom pour une entrée de ce type, par exemple, film (film)
  • add_new– en remplaçant le texte « Ajouter un nouveau » par le texte spécifié, par exemple « Ajouter un film »
  • add_new_item– remplacement de « Ajouter un nouveau message », par exemple, par « Ajouter un nouveau film »
  • edit_item– remplacement de « Edit Post », par exemple, par « Edit Movie »
  • image_présentée– remplacement de « Featured Image » dans l’éditeur de publication, par exemple par « Movie Poster »
  • set_featured_image– en remplaçant « Définir l’image sélectionnée », par exemple, par cette option « Ajouter une affiche de film »
  • nom_menu– modifiez le texte du lien au niveau supérieur, le texte du lien par défaut est le nom de la clé

Supports de tableau

// Activer des fonctionnalités spécifiques dans l'éditeur de publication pour mon type de publication $supports = array ("title", "editor", "author", "thumbnail"); // Désactive TOUTES les fonctionnalités de l'éditeur de publication pour mon type de publication $supports = FALSE;

Une des clés du tableau $args appelé prend en charge. Il s'agit d'un tableau simple dans lequel vous enregistrez une liste de fonctionnalités de l'éditeur de publication que vous souhaitez activer pour votre type de publication. Par défaut, seuls le titre et l'éditeur sont activés.

Vous pouvez également définir FALSE au lieu du tableau pour désactiver toutes les fonctions de l'éditeur, désactivant à la fois le titre et la zone d'ajout de contenu. Cela signifie que l'entrée ne peut pas être modifiée, mais qu'elle reste entièrement visible.

Voici une liste de fonctions que vous pouvez inclure dans un tableau $ prend en charge:

  • titre (titre)
  • éditeur
  • auteur – REMARQUE : cela vous permet de changer l'auteur du message
  • vignette (icône)
  • extrait (fragment de texte)
  • rétroliens
  • champs personnalisés (champ personnalisé)
  • commentaires
  • révisions (versions)
  • attributs de page
  • post-formats (formats de publication)

Création d'un type de publication WordPress personnalisé via un plugin

Maintenant que nous savons de quels paramètres la fonction a besoin, nous pouvons créer notre propre plugin, écrire notre propre fonction et l'attacher à l'événement. initialisation.

lc_custom_post_movie() au hook d'action d'initialisation add_action("init", "lc_custom_post_movie"); // La fonction personnalisée pour enregistrer une fonction de type post de film lc_custom_post_movie() ( // Définit les étiquettes, cette variable est utilisée dans le tableau $args $labels = array("name" => __("Movies"), "singular_name " => __("Film"), "add_new" => __("Ajouter un nouveau film"), "add_new_item" => __("Ajouter un nouveau film"), "edit_item" => __("Modifier le film") , "new_item" => __("Nouveau film"), "all_items" => __("Tous les films"), "view_item" => __("Voir le film"), "search_items" => __("Rechercher des films "), "featured_image" => "Poster", "set_featured_image" => "Add Poster"); // Les arguments de notre type de post, à saisir en paramètre 2 de register_post_type() $args = array("labels" => $labels, "description" => "Contient nos films et données spécifiques aux films", "public" => true, "menu_position" => 5, "supports" => array("title", "editor", " miniature", "extrait", "comments", "champs personnalisés"), "has_archive" => true, "show_in_admin_bar" => true, "show_in_nav_menus" => true, "has_archive" => true, "query_var" = > "film"); // Appelez la fonction WordPress réelle // Le paramètre 1 est un nom pour le type de publication // Le paramètre 2 est le tableau $args register_post_type("movie", $args); ) // Crochet lc_custom_post_movie_reviews() au hook d'action d'initialisation add_action("init", "lc_custom_post_movie_reviews"); // La fonction personnalisée pour enregistrer une fonction de type de publication de critique de film lc_custom_post_movie_reviews() ( // Définit les étiquettes, cette variable est utilisée dans le tableau $args $labels = array("name" => __("Movie Reviews"), "singular_name" => __("Critique du film"), "add_new" => __("Ajouter une nouvelle critique du film"), "add_new_item" => __("Ajouter une nouvelle critique du film"), "edit_item" => __( "Modifier la critique du film"), "new_item" => __("Nouvelle critique du film"), "all_items" => __("Toutes les critiques du film"), "view_item" => __("Afficher les critiques du film"), " search_items" => __("Search Movie Reviews")); // Les arguments pour notre type de message, à saisir comme paramètre 2 de register_post_type() $args = array("labels" => $labels, "description" = > "Détient nos critiques de films", "public" => true, "menu_position" => 6, "supports" => array("title", "editor", "thumbnail", "excerpt", "comments", " custom-fields"), "has_archive" => true, "show_in_admin_bar" => true, "show_in_nav_menus" => true, "has_archive" => true); // Appelez la fonction WordPress réelle // Le paramètre 1 est un nom pour le tableau post type // $args va dans le paramètre 2. register_post_type("review", $args); )

Si vous activez ce plugin, vous verrez un nouveau lien dans la barre de navigation de la console d'administration, juste après le lien Posts.

Au survol de la souris, les éléments de menu « Afficher tout » et « Ajouter nouveau » seront affichés, le texte correspondra à ce qui a été spécifié dans le tableau $étiquettes. Regardez dans l'éditeur où les liens ont changé.

Limiter les champs personnalisés pour des enregistrements donnés

Lorsque vous ajoutez vos champs à un enregistrement, les champs sont enregistrés et vous pouvez rapidement en ajouter au nouvel enregistrement. Les champs personnalisés que vous avez ajoutés apparaîtront dans la liste déroulante de chaque entrée. Cela peut rendre difficile la recherche du domaine que vous recherchez dans certains types de publications. Si vous souhaitez restreindre les champs personnalisés afin qu'ils ne soient disponibles que pour certains types de publications, le moyen le plus simple consiste à utiliser un plugin.

get_post_meta()

  • prend 3 paramètres et retours résultat
  • le premier paramètre est l'ID de la publication, vous pouvez l'utiliser ici $post->ID pour obtenir l'ID de l'entrée actuellement affichée
  • deuxième paramètre – nom d'un champ d'enregistrement personnalisé, sensible à la casse
  • le troisième paramètre est de type booléen, appelé $simple et peut être TRUE (renvoie le résultat sous forme de chaîne) ou FALSE (renvoie un tableau).

NOTE: Vous pouvez créer plusieurs champs personnalisés avec le même nom et des valeurs différentes. S'il existe plusieurs champs portant le même nom, la définition de FALSE en renverra un tableau.

ID, "Box Art", VRAI); si (!empty($movie_box_art)) ( ?>
" alt="(!LANG : !}">

Puisque la fonction get_post_meta() renvoie une valeur, vous pouvez utiliser la valeur dans une expression conditionnelle pour modifier l'apparence en conséquence.

Dans l'exemple ci-dessus, nous vérifions si le film contient des illustrations de boîte qui lui sont attribuées en tant que champ personnalisé. Si $movie_box_art pas vide, affiche div et image.

Affichage des champs personnalisés avancés

// Afficher la valeur du champ the_field("FIELD NAME"); // Renvoie la valeur du champ get_field("FIELD NAME");

Le plugin Advanced Custom Fields propose ses propres fonctions et shortcodes pour l'affichage des champs.

the_field('NOM DU CHAMP');

Affiche la valeur d'un champ spécifié, vous devez utiliser le nom du champ que vous avez spécifié lors de la création du groupe de champs.

get_field('NOM DU CHAMP');

Renvoie la valeur du champ spécifié, utile pour les expressions conditionnelles.

Ce sont les fonctionnalités dont vous aurez probablement besoin. Il existe de nombreuses fonctionnalités supplémentaires et vous pouvez les trouver dans .

Codes courts

Vous pouvez afficher les champs directement sur une publication en utilisant le shortcode ci-dessus.

Afficher un type de publication personnalisé sur la page principale

// Accrochez notre fonction personnalisée au hook d'action pre_get_posts add_action("pre_get_posts", "add_reviews_to_frontpage"); // Modifier la fonction de requête principale add_reviews_to_frontpage($query) ( if (is_home() && $query->is_main_query()) ( $query->set("post_type", array("post", "movie", "review ")); ) renvoie $query; )

Les types de publication personnalisés n'apparaissent pas sur la page principale par défaut, vous devez donc créer une nouvelle fonction qui appelle la méthode set de l'objet WP_Query WordPress.

La fonction vérifie si le visiteur est sur la page d'accueil et si la requête active est une requête principale générée par WordPress.

$requête->set() prend deux paramètres :

  • le premier paramètre est la priorité que vous souhaitez modifier, dans notre cas on change la priorité post_type
  • le deuxième paramètre est le tableau que vous souhaitez transmettre comme valeur d'attribut post_type

Dans l'exemple de code ci-dessus, le tableau commence par « post » – c'est pourquoi chaque publication WordPress est de type « post » et nous souhaitons toujours l'inclure sur la page principale.

Si vous souhaitez uniquement utiliser des publications personnalisées d'un type donné sur votre page d'accueil, vous pouvez supprimer les « publications » et utiliser votre propre type de publication.

La valeur que vous saisissez doit correspondre au paramètre 1 de la fonction registre_post_type().

Conclusion

Dans ce didacticiel, nous montrons comment créer des types personnalisés et de quelles données vous avez besoin pour le faire. La flexibilité des types de publication personnalisés offre des fonctionnalités précieuses pour tout site WordPress.