Gérer les messages WordPress en utilisant PHP: création et mise à jour

Comme je l’ai promis, c’est la deuxième partie de mon premier article, « créer des messages et des pages WordPress en utilisant PHP 101 tutoriels». Dans nous verrons comment étendre les fonctions et les théories de base que jamp;rsquoa i discutées dans la partie 1 pour créer une classe damp;emballage PHP robuste et finalement fiable. Comme damp;rsquohabitude, je soutiens ceux qui veulent juste aller directement dans le Code. Vous pouvez le trouver dans lamp;rsquoun de mes dépôts github (il est trop long pour coller directement dans cet article!). Ce que nous voulons réaliser: un cadre PHP complet et fiable au niveau de la production. Capacité de gérer non seulement la création de messages, mais aussi la gestion et la mise à jour des messages existants. Être capable de rechercher et damp;rsquoutiliser des messages en fonction de ses propres besoins Documents damp;rsquoidentité Titre ou escargot. Cet article sera divisé en deux parties: les instructions damp;rsquoutilisation et le Guide étape par étape.
amp;rsquoennuis, on y va! Tout damp;rsquoabord, assurez damp;rsquoinclure le fichier de classe. Contrôleur arrière. Ou collez le contenu du fichier dans votre document PHP. Sans ça, ça ne marchera pas! Dans la deuxième moitié de ce tutoriel, nous examinerons le code dans ce fichier. Suivez ces étapes pour commencer le cours Affiche = nouveau Contrôleur arrière Le Contrôleur de poste travaille de cette façon Utilisez la fonction post pour définir les propriétés du post. Par conséquent, créez ou mettez à jour des messages. Pour mettre à jour un message, devez damp;rsquoabord rechercher et trouver le message que souhaitez mettre à jour. Ça semble assez simple?
Définir le titre de lamp;rsquoattribut définir le titre du poste. Le code HTML namp;rsquoest pas autorisé ici et est supprimé Poster amp;gt définir le titre (
_ contenu (amp;lsquo
Camp;rsquoest mon meilleur nouveau post!
amp;lsquo ) Lamp;rsquoauteur définit lamp;rsquoauteur du billet. Il suffit de spécifier lamp;rsquoid de lamp;rsquoauteur du nouvel auteur. Ça doit être un entier.
$poster amp;gt SET _ author ID (12) Snail name il samp;rsquoagit du chemin vers lamp;rsquoURL personnalisée du message, si elle est activée. Notez ceci, tout comme lamp;rsquoescargot est déjà utilisé, il peut causer des erreurs. Jamp;rsquoai rejoint la validation et jamp;rsquoai essayé de lamp;rsquoéviter à tout prix. Les caractères spéciaux ou HTML $ne sont pas autorisés Post amp;gt SET _ post Slug (
$poster amp;gt définir le modèle de page (amp;lsquofullwidth _ page.phpamp;rsquo) Status this method sets the Status of the post. Options disponibles [
Avant de mettre à jour un billet existant, nous devons damp;rsquoabord le trouver en utilisant la fonction de recherche. Pour ce faire, nous utilisons la méthode de recherche $ Poster amp;gt recherche (amp;lsquoSearch _ byamp;rsquo, amp;lsquoDataamp;rsquo) Cette méthode prend deux paramètres, lamp;rsquoattribut à rechercher et les données à rechercher. Vous pouvez rechercher $par titre Affiche amp;gt recherche (
Chaîne (si recherche par titre ou par fente) ou entier (si recherche par ID). aucun article ou page namp;rsquoest trouvé avec les paramètres spécifiés, une erreur est ajoutée au tableau $errors. Vous pouvez appeler et voir ce contenu en utilisant le code suivant.
$Error = $poster amp;gt get variable (
$poster amp;gt get variable (
Demandez moi dans les commentaires ici. trouvez un bogue, prévenez moi sur github.
Prêt pour la deuxième partie? Construire une classe: les instructions étape par étape nous ont maintenant montré comment lamp;rsquoutiliser, revenons au début. Notre classe sera appelée postcontroller Contrôleur post classe {class Function go here} Pour ceux qui ne sont pas des experts en classe PHP, une classe est définie comme un objet qui contient une collection de fonctions et de variables qui travaillent ensemble. Regardez le profil PHP. Net pour plus de détails sur la syntaxe et la théorie que nous utiliserons pour créer le cadre. Lamp;rsquoétape suivante dans la liste à faire est de déclarer toutes les variables que nous utiliserons.
Variables pour postdata public $PC _ title Public $PC U type Contenu commun $PC U Catégorie commune $PC U Modèle commun $PC U Public $PC u Slug Public $PC _ Auth ID Public $PC _ status =
Type de titre (page poste, etc.) Catégorie catégorie Snail page Template author ID and post Status (e.g., published draft) The second block will contain actual Data for WordPress post returned by the Search Query (or for Post created after the Creation). La variable « $PC _ Current post » contiendra un objet pour lamp;rsquoensemble du post. Ceci contient toutes les données sur le Post, y compris (important) celles énumérées ci dessus. De même, les variables post ID et Permalink contiendront les données qui existent sur post
Entité Le troisième et dernier bloc namp;rsquoa quamp;rsquoune seule variable: le tableau des erreurs. un problème survient à un point critique connu, un message sur le problème est ajouté au tableau comme référence. Notez que jamp;rsquoai inclus
Nput (maximiser la fiabilité) Set Post Post Slug Common functions set _ post Slug ($$Slug) {$args = array (amp;lsquonameamp;rsquo = amp;gt $$Slug) $$posts Query = get posts ($$args) if (! Get posts ($$args) amp;amp amp;amp amp;amp! Get page by path ($$this amp;gt PC Slug)) {$$$this amp;gt PC Slug ($$Slug) {$$$this amp;gt PC Slug = $Slug return return) {$$$this amp;gt PC Slug = $Slug return return return return return return return retur$this amp;gt PC _ Slug} Else {$this amp;gt Errors [] =
Ce serait génial de lamp;rsquoutiliser comme un chemin (essentiellement le même que celui de lamp;rsquoescargot dans cet article). Définir les variables. non, une erreur est ajoutée au tableau $Errors et la variable namp;rsquoest pas définie (la fonction renvoie une fausse valeur booléenne). Set _ page Template () amp;amp add Category () set page Template () assigne un modèle de page (dans le format my page template.php) à une page et une seule page. La validation ici ne vérifie que si le type de message est défini à la page. vrai, les données sont stockées. non, ne tamp;rsquoinquiète pas. Add _ Category () permet damp;rsquoajouter un tableau entier à la catégorie damp;rsquoun message (il doit être dans le tableau même si namp;rsquoajoutez quamp;rsquoun seul nombre). Un entier représente lamp;rsquoid de catégorie. Vérifiez que namp;rsquoavez quamp;rsquoà faire défiler le tableau spécifié pour vérifier que chaque cellule a une valeur entière. la cellule a une valeur entière, elle est ajoutée au tableau des catégories principales. non, il est ignoré et une erreur est ajoutée au tableau des erreurs. Brillant Nous pouvons maintenant assigner autant de variables que nécessaire. Recherche au début de ce tutoriel, nous avons dit que nous voulions créer un système capable de mettre à jour les messages WordPress existants. Pour ce faire, nous devons damp;rsquoabord trouver le post à éditer. Pour ce faire, nous utiliserons la fonction search () Rechercher les fonctions postpostrecherche fonctions publiques rechercher les fonctions postpostfonctions publiques search ($$by, $$Data) {switch ($$by) { utilisez son ID Case { span
« après»)} $ Id = $post amp;gt ID (IS _ INTEGER ($ID) amp;amp amp;amp get Post ($Integer) $id = NULL) {$this amp;gt PC _ Current post = get Post ((entier) $ID,
Current _ post amp;gt post type) {$PC post [amp;lsquopost typeamp;rsquo] = $this amp;gt PC type} (isset ($this amp;gt PC _ Auth ID) amp;amp $this amp;gt PC Auth ID! = $ Ceci amp;gt PC _ Current post amp;gt post type) {$PC post [amp;lsquopost authoramp;rsquo] = $this amp;gt PC Auth ID} (isset ($this amp;gt PC u status) amp;amp $this amp;gt PC u Status! = $ Ceci amp;gt PC _ Current post amp;gt Post status) {$PC post [amp;lsquopost Statusamp;rsquo] = $this amp;gt PC status} (isset ($this amp;gt PC u Category) amp;amp $this amp;gt PC u Category! = $ Ceci amp;gt PC _ Current post amp;gt Post Category) {$PC post [amp;lsquopost Categoryamp;rsquo] = $this amp;gt PC Category} (isset ($this amp;gt PC u template) amp;amp $this amp;gt PC u Template! = $ Ceci amp;gt PC _ Current post amp;gt Page Template amp;amp ($PC post [amp;lsquopost type] =amp;rsquo page amp;lsquo 124 $this amp;gt PC Current post amp;gt post type = =amp;rsquo page amp;lsquo) {PC post [amp;lsquo page Template] = $$this amp;gt PC Template} (isset ($this amp;gt PC u segment plug) amp;amp $this amp;gt PC u segment plug! = $ Ceci amp;gt PC _ Current post amp;gt Post name) {$args = array (amp;lsquonameamp;rsquo = amp;gt $this amp;gt PC Slug)} (! Get _ posts ($args) amp;amp amp;amp amp;amp! Get _ page by path ($this amp;gt PC Slug)) {$PC post [amp;lsquopost nameamp;rsquo] = $this amp;gt PC Slug} Else {$Errors [] =
Il namp;rsquoy a rien de mal à répéter lamp;rsquoinspection! Il est facile de vérifier les modèles de page (vérifier si le type de message est défini à la page) parce que camp;rsquoest mon erreur damp;rsquoessayer de définir des modèles de page pour les non messages. Désolé pour la réaction excessive! Damp;rsquoautre part, il est important de contrôler les escargots! Tu ne veux vraiment pas te battre avec un escargot. Dans ce cas, il namp;rsquoy a pas damp;rsquoexcès. Camp;rsquoest presque tout ce que Update (). Enfin, nous avons quelques fonctions générales utiles. Maintenant que avez écrit une grande partie de la classification, il est préférable damp;rsquoajouter quelques fonctionnalités utiles pour gagner du temps. Voir Fonctions communes fonction commune get _ content () {if (isset ($this amp;gt PC Current post amp;gt Post content)) {return $this amp;gt PC Current post amp;gt Post content}}} Fonction publique get _ var ($name) {$name = amp;lsquoPC U
Set.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins