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 cet article, nous verrons comment étendre les fonctions et les théories de base que j’a i discutées dans la partie 1 pour créer une classe d’emballage PHP robuste et finalement fiable. Comme d’habitude, je soutiens ceux qui veulent juste aller directement dans le Code. Vous pouvez le trouver dans l’un 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 d’utiliser des messages en fonction de ses propres besoins; Documents d’identité Titre ou escargot. Cet article sera divisé en deux parties: les instructions d’utilisation et le Guide étape par étape.Plus d’ennuis, on y va! Tout d’abord, assurez – vous d’inclure 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, vous devez d’abord rechercher et trouver le message que vous souhaitez mettre à jour. Ça semble assez simple?
Définir le titre de l’attribut définir le titre du poste. Le code HTML n’est pas autorisé ici et est supprimé Poster – > définir le titre (\
_ contenu (‘
C’est mon meilleur nouveau post!
‘ ); L’auteur définit l’auteur du billet. Il suffit de spécifier l’id de l’auteur du nouvel auteur. Ça doit être un entier.
$poster – > SET _ author ID (12); Snail \/ name il s’agit du chemin vers l’URL personnalisée du message, si elle est activée. Notez ceci, tout comme l’escargot est déjà utilisé, il peut causer des erreurs. J’ai rejoint la validation et j’ai essayé de l’éviter à tout prix. Les caractères spéciaux ou HTML $ne sont pas autorisés Post – > SET _ post Slug (\
$poster – > définir le modèle de page (‘fullwidth _ page.php’); Status this method sets the Status of the post. Options disponibles; [\
Avant de mettre à jour un billet existant, nous devons d’abord le trouver en utilisant la fonction de recherche. Pour ce faire, nous utilisons la méthode de recherche $ Poster – > recherche (‘Search _ by’, ‘Data’); Cette méthode prend deux paramètres, l’attribut à rechercher et les données à rechercher. Vous pouvez rechercher $par titre Affiche – > recherche (\
Chaîne (si recherche par titre ou par fente) ou entier (si recherche par ID). Si aucun article ou page n’est 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 – > get variable (\
$poster – > get variable (\
Demandez – moi dans les commentaires ici. Si vous 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 l’utiliser, 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. L’é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 l’ensemble 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 n’a qu’une seule variable: le tableau des erreurs. Si un problème survient à un point critique connu, un message sur le problème est ajouté au tableau comme référence. Notez que j’ai inclus \
Nput (maximiser la fiabilité) \/ Set Post Post Slug Common functions set _ post Slug ($$Slug) {$args = array (‘name’ = > $$Slug); $$posts Query = get posts ($$args); if (! Get posts ($$args) & & &! Get page by path ($$this – > PC Slug)) {$$$this – > PC Slug ($$Slug) {$$$this – – > PC Slug = $Slug; return; return) {$$$this – > PC Slug = $Slug; return; return; return; return; return; return; return; retur$this – > PC _ Slug;} Else {$this – > Errors [] = \
Ce serait génial de l’utiliser comme un chemin (essentiellement le même que celui de l’escargot dans cet article). Définir les variables. Sinon, une erreur est ajoutée au tableau $Errors et la variable n’est pas définie (la fonction renvoie une fausse valeur booléenne). Set _ page Template () & 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. Si vrai, les données sont stockées. Sinon, ne t’inquiète pas. Add _ Category () vous permet d’ajouter un tableau entier à la catégorie d’un message (il doit être dans le tableau même si vous n’ajoutez qu’un seul nombre). Un entier représente l’id de catégorie. Vérifiez que vous n’avez qu’à faire défiler le tableau spécifié pour vérifier que chaque cellule a une valeur entière. Si la cellule a une valeur entière, elle est ajoutée au tableau des catégories principales. Sinon, 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 d’abord 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 – > ID; Si (IS _ INTEGER ($ID) & & get Post ($Integer) $id = NULL) {$this – > PC _ Current post = get Post ((entier) $ID, \
Current _ post – > post type) {$PC post [‘post type’] = $this – > PC type;} Si (isset ($this – > PC _ Auth ID) & $this – > PC Auth ID! = $ Ceci – > PC _ Current post – > post type) {$PC post [‘post author’] = $this – > PC Auth ID;} Si (isset ($this – > PC \ u status) & $this – > PC \ u Status! = $ Ceci – > PC _ Current post – > Post status) {$PC post [‘post Status’] = $this – > PC status;} Si (isset ($this – > PC \ u Category) & $this – > PC \ u Category! = $ Ceci – > PC _ Current post – > Post Category) {$PC post [‘post Category’] = $this – > PC Category;} Si (isset ($this – > PC \ u template) & $this – > PC \ u Template! = $ Ceci – > PC _ Current post – > Page Template & ($PC post [‘post type] =’ page ‘; \ \ 124; $this – > PC Current post – > post type = =’ page ‘) {PC post [‘ page Template] = $$this – > PC Template;} Si (isset ($this – > PC \ u segment plug) & $this – > PC \ u segment plug! = $ Ceci – > PC _ Current post – > Post name) {$args = array (‘name’ = > $this – > PC Slug);} Si (! Get _ posts ($args) & & &! Get _ page by path ($this – > PC Slug)) {$PC post [‘post name’] = $this – > PC Slug;} Else {$Errors [] = \
Il n’y a rien de mal à répéter l’inspection! 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 c’est mon erreur d’essayer de définir des modèles de page pour les non – messages. Désolé pour la réaction excessive! D’autre part, il est important de contrôler les escargots! Tu ne veux vraiment pas te battre avec un escargot. Dans ce cas, il n’y a pas d’excès. C’est presque tout ce que Update (). Enfin, nous avons quelques fonctions générales utiles. Maintenant que vous avez écrit une grande partie de la classification, il est préférable d’ajouter quelques fonctionnalités utiles pour gagner du temps. Voir \/ \/ Fonctions communes fonction commune get _ content () {if (isset ($this – > PC Current post – > Post content)) {return $this – > PC Current post – > Post content;}}} Fonction publique get _ var ($name) {$name = ‘PC U \
Set. \