Aujourd’hui, nous continuerons avec notre mini-série à insérer des postes via l’arrière-plan, mais dans cette partie-ci, nous examinerons exclusivement comment modifier et effacer messages via le front end. Nous verrons comment afficher tous nos messages, les éditer et les supprimer. Alors, préparons-nous et commençons!
Nous en sommes maintenant à la deuxième partie de notre mini-série, et si vous n'avez pas lu la première partie, je vous le recommande, car nous reprendrons là où nous en étions restés. Notre objectif, une fois cette mini-série terminée, devrait permettre à l’utilisateur de soumettre des messages via le serveur frontal, de les éditer et de les envoyer à la corbeille; le tout sans être dans le tableau de bord WordPress. Ces méthodes peuvent être utilisées à la fois dans un thème ou un plugin et être très adaptables pour réaliser des soumissions très avancées et complexes.
La démo et les fichiers à télécharger constituent un thème simplifié créé uniquement pour les besoins de ce didacticiel..
Alors ouvrez votre éditeur de texte préféré et commençons!
Nous allons commencer par afficher tous nos messages de manière plus efficace, cela nous permettra de mieux gérer nos messages et d’effectuer des actions sur chaque message. Comme nous utilisons un thème pour développer cela, nous allons créer un modèle de page appelé template-view-posts.php. Nous allons également créer une nouvelle page via notre tableau de bord WordPress Pages -> Ajouter nouveau -> Attributs de page comme assigner le modèle à cette page.
Nous avons maintenant notre modèle de page et notre page créés dans notre thème WordPress, nous pouvons commencer à publier tous nos articles. Nous allons créer un tableau très simple pour afficher toutes les informations nécessaires. Commencez par créer un tableau avec quelques en-têtes, comme suit:
Titre de l'article | Poster un extrait | État du message | actes |
---|---|---|---|
Maintenant que notre table est en place, nous pouvons commencer à remplir nos lignes avec des informations relatives à nos publications. Nous commencerons par créer d'abord une boucle WordPress personnalisée, afin de nous assurer que nous obtenons tous les messages et tous les statuts, car nous voulons pouvoir voir quels messages sont en attente, brouillons, publiés ou même envoyés à la corbeille. Nous faisons cela en insérant le bit de code suivant:
'post', 'posts_per_page' => '-1', 'post_status' => array ('publier', 'en attente', 'brouillon', 'privé', 'corbeille'))); ?>
Ceci est notre objet de requête avec tous nos paramètres personnalisés que nous avons définis. Vous pouvez lire tous les différents paramètres que nous pouvons définir à partir du Codex WordPress. Ensuite, nous allons lancer notre boucle WordPress juste après nos en-têtes de table, comme ceci:
have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Brillant! Nous avons notre ensemble de tables et notre ensemble de boucles WordPress. Maintenant, nous avons juste besoin de saisir nos informations qui sont liées aux en-têtes de nos tableaux. Remplacez nos cellules de tableau vides par le code suivant:
Modifier Supprimer
Le code que nous venons d'insérer commence par la sortie du titre de notre article et le prochain élément est la sortie d'un extrait de notre article. Nous obtenons ensuite le statut actuel de la publication et passons l'ID de publication à cette fonction et, enfin, nous entrons dans deux liens. modifier et Effacer, nous utiliserons ces dernières comme nos actions.
Génial, nous progressons bien. Nous avons configuré notre thème pour afficher tous nos messages via le front-end. Ensuite, nous allons éditer le post. Nous commençons cela en créant un autre modèle de page appelé template-edit-posts.php. Nous allons également créer une nouvelle page via notre tableau de bord WordPress Pages -> Ajouter nouveau -> Attributs de page et assigner le modèle à cette page.
Avant de commencer à éditer ce modèle, revenons à notre template-view-posts.php fichier et s’assurer que nous transmettons l’ID de publication à l’URL où nous récupérerons l’ID de notre page de modification. Nous faisons cela en utilisant la fonction WordPress: add_query_arg
. Nous allons insérer le code suivant juste avant notre lien Modifier:
Le code que nous venons d'insérer définit d'abord le nom du paramètre, puis obtient l'ID de la publication, puis l'ID de notre modèle de modification de page et l'ajout de notre argument URL personnalisé. Nous allons l'utiliser pour récupérer les informations dans notre modèle de modification.
Enfin, nous allons sortir ceci dans notre lien d'édition, en rendant notre lien d'édition comme suit:
"> Modifier
Maintenant que nous l'avons défini pour que l'utilisateur clique sur Modifier, il passe à notre modèle de modification avec l'identifiant de publication. Nous reviendrons à notre template-edit-posts.php déposer et commencer à insérer notre code.
Nous allons copier sur notre Forme de notre template-insert-posts.php et insérez-le dans notre modèle de modification. Nous copions le code suivant dans notre modèle de modification et supprimons toutes les valeurs de nos entrées et textarea, ce qui rend notre formulaire comme suit:
Maintenant que nous avons notre ensemble de formulaires de page d'édition, nous devrons utiliser la boucle WordPress pour parcourir tous nos articles et ne trouver que ceux qui correspondent à l'identifiant de l'article transmis à notre URL. Nous allons faire cela en exécutant la boucle WordPress en haut de notre fichier:
'post', 'posts_per_page' => '-1')); ?> have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Pour que la boucle WordPress s'assure que nous récupérons uniquement les informations de la publication spécifique, nous allons insérer le code suivant qui garantit que nous obtenons le bon ID de publication, à l'intérieur de notre boucle:
if (isset ($ _GET ['post'])) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID;
Ce que nous venons d’insérer, c’est d’obtenir le paramètre d’URL et de le tester par rapport à l’ID de publication. Une fois la correspondance trouvée, nous attribuerons cet ID à notre current_post
variable. Suite à cela, nous allons insérer du code pour obtenir nos informations concernant notre message, insérez le code suivant juste en dessous de notre current_post
affectation:
$ title = get_the_title (); $ content = get_the_content ();
Notre code final devrait ressembler à ceci:
if (isset ($ _GET ['post'])) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; $ title = get_the_title (); $ content = get_the_content ();
C’est génial, nous progressons bien. Maintenant que nous avons toutes nos informations, il ne nous reste plus qu'à les insérer dans nos valeurs de formulaire. C'est simple, nous allons simplement assigner des valeurs à nos deux champs. Parallèlement, nous mettrons à jour le nom de notre bouton pour Mettre à jour le message. Le code suivant est notre formulaire mis à jour avec le formulaire rempli avec le titre et le contenu de la publication:
Comme vous pouvez le constater d'après le code, nous avons affecté notre valeur d'entrée Post Title à la sortie de la variable title. Dans notre zone de texte, nous avons également généré notre variable content. Toutefois, comme vous l'avez peut-être remarqué, lorsque vous cliquez sur Update Post, rien ne se passe. c’est parce que nous n’avons pas encore géré cela, et nous le ferons maintenant.
Nous devrons revenir à notre template-insert-posts.php fichier et nous allons copier notre validation de formulaire PHP dans notre modèle de modification. Maintenant que nous avons copié notre validation de formulaire, nous allons apporter des modifications et insérer du code. Nous devons récupérer le current_post
variable dans notre validation de formulaire, et nous le faisons en définissant une variable globale et nous l'insérons au-dessus de notre validation:
global $ current_post;
Ensuite, nous allons modifier notre post_information
tableau. Lors de la mise à jour de notre message, nous devons nous assurer qu'il mettra à jour le bon message et non tous les messages, nous le faisons en insérant un paramètre ID dans notre post_information
tableau. Faire notre tableau comme suit:
$ post_information = array ('ID' => $ current_post, 'post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' => $ _POST ['postContent'], 'post_type'], 'post_type' => 'post' , 'post_status' => 'en attente');
Enfin, nous apporterons une dernière modification qui nous permettra de mettre à jour le message et de ne pas en insérer un nouveau. Nous faisons cela en changeant simplement la fonction que nous utilisons, au lieu d’utiliser wp_insert_post
, nous utiliserons wp_update_post
. Rendre notre code final comme suit:
$ post_id = wp_update_post ($ post_information);
Et c'est tout pour l'édition post par l'intermédiaire du front-end. Enfin, pour cette partie de la mini-série, nous verrons comment supprimer des posts.
Il existe maintenant de nombreuses façons différentes de supprimer des publications, et il y a eu de nombreuses discussions sur la meilleure méthode pour y parvenir. Par certaines personnes, c'est probablement la méthode incorrecte, mais j'estime que cela fonctionne parfaitement pour la situation actuelle. Nous allons utiliser la fonction get_delete_post_link
.
Nous allons transmettre cette fonction à notre lien de suppression en même temps que l'ID de la publication, comme suit:
"> / Supprimer
Et c'est aussi simple que cela de supprimer des messages via le serveur frontal. Nous allons juste développer cela un peu afin d’éviter les erreurs et d’avertir un peu plus les utilisateurs que nous supprimons un message. Nous faisons cela en insérant une fonction de confirmation très simple dans notre onclick, comme suit:
?') "href =""> Supprimer
Enfin, nous encapsulerons une condition autour de notre lien de suppression pour nous assurer que nous ne pouvons supprimer un message que si son statut actuel n'est pas déjà dans la Corbeille. Nous faisons cela comme suit:
?') "href =""> Supprimer
Et c'est tout! Vous pouvez envoyer des messages à la corbeille. Juste au cas où vous seriez curieux de connaître la méthode alternative pour supprimer des posts, je vais l'expliquer très brièvement..
La méthode est très simple pour éditer des publications, en passant l'ID de publication à l'URL avec l'ajout d'un paramètre de effacer
et en vérifiant si la valeur de ce paramètre est vraie, et si elle est vraie, passez le wp_trash_post
fonction au lien. C’est très simple et très efficace, mais pour notre situation actuelle, le get_delete_post_link
fonctionne parfaitement bien.
C'est la partie 2 complète! Nous pouvons maintenant insérer des publications, éditer et supprimer des publications via le serveur frontal. Nous avons couvert beaucoup de contenu jusqu'à présent, et dans la prochaine partie nous allons creuser un peu plus loin.
Dans la prochaine partie, nous examinerons les champs personnalisés et plus encore..
Je voudrais dire un énorme merci pour passer le temps de lire mon tutoriel, j'espère que cela a aidé. N'hésitez pas à laisser des commentaires et je ferai de mon mieux pour vous aider et y répondre. Sinon, vous pouvez toujours me contacter directement via mon site Web: www.VinnySingh.co ou Twitter @VinnySinghUK.
Restez à l'écoute pour la partie 3!