Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Tutoriel : Comment ajouter une action groupée personnalisée dans WordPress Admin

61

Au-dessus de la plupart des tableaux d’éléments dans l’administration WordPress (par exemple, les publications, les pages, les commentaires, les plugins et les utilisateurs), vous trouverez la fonctionnalité de WordPress pour les actions en masse. Les actions groupées vous permettent de cocher plusieurs éléments, de choisir une action et d’exécuter cette action pour tous les éléments à la fois. Dans cet article, nous verrons comment ajouter nos propres actions groupées personnalisées à l’administrateur WordPress.

L’ajout d’une action groupée personnalisée est devenu beaucoup plus facile dans les versions récentes de WordPress (depuis la 4.7). Il y a un filtre pour les options disponibles dans la liste déroulante ; un autre filtre pour ce qu’il doit faire lorsque votre option est choisie, et un autre crochet pour afficher éventuellement un avis d’administration. Passons en revue chacun d’entre eux.

Ajout d’une action groupée personnalisée dans la liste déroulante

Commençons par ajouter notre choix groupé personnalisé à la liste déroulante des actions groupées. Pour cela, nous utilisons le filtre bulk_actions_<screen>, que vous remplacez par l’écran d’administration auquel vous souhaitez ajouter votre option. Voici un aperçu complet des options possibles pour l’écran :

  • bulk_actions-edit-post: écran d’édition de type de message "post"
  • bulk_actions-edit-page : écran d’édition de type de message "page"
  • bulk_actions-edit-<post-type-name>: Écran d’édition de type de message personnalisé
  • bulk_actions-edit-<custom-taxonomy>: écran d’édition de taxonomie personnalisée
  • bulk_actions-edit-comments: Écran de la liste des commentaires
  • bulk_actions-plugins: Écran de la liste des plugins
  • bulk_actions-users: écran de la liste des utilisateurs
  • bulk_actions-upload : Liste de la bibliothèque multimédia (fonctionne uniquement en mode liste, pas en mode grille)

Le filtre est appliqué sur un tableau avec des paires clé-valeur ; où les clés sont une clé unique pour les actions et les valeurs sont l’étiquette qui apparaît dans la liste déroulante.

Prenons un exemple. Je souhaite créer une action groupée pour définir les articles comme publiés.

add_filter('bulk_actions-edit-post', function($bulk_actions) { $bulk_actions['change-to-published'] = __('Change to published', 'txtdomain'); return $bulk_actions; });

Si vous enregistrez et actualisez l’écran d’édition des messages, vous devriez voir votre option dans la liste déroulante.

Tutoriel : Comment ajouter une action groupée personnalisée dans WordPress Admin

À l’heure actuelle, notre action groupée personnalisée se déroule parfaitement. C’est la prochaine étape.

Faire en sorte que notre action groupée personnalisée fasse quelque chose

Afin de déclencher quelque chose lors du choix de notre option nouvellement ajoutée dans le dropwon, nous nous accrochons au filtre handle_bulk_actions-<screen>. Reportez-vous à l’aperçu ci-dessus pour les valeurs d’écran possibles. Évidemment, votre crochet de poignée doit être le même écran que l’écran dans lequel vous avez ajouté l’action en bloc lors de la première étape.

Vous avez trois arguments possibles dans ce filtre. Le premier – celui que vous renvoyez – est en fait une URL vers laquelle WordPress doit rediriger après avoir terminé votre action groupée. Le deuxième argument est le nom de l’action qui a été choisie dans la liste déroulante. Et le troisième est un tableau de tous les ID d’éléments qui ont été vérifiés pour l’action en bloc. Ce sont les éléments sur lesquels nous devons appliquer notre action.

Regardons ce que fait le code ci-dessus étape par étape. Nous devons d’abord vérifier si l’action groupée effectuée était bien notre action personnalisée ; change-to-published. Et puis c’est à nous de faire ce qu’on veut avec tous les identifiants.

Le code ci-dessus parcourt tous les identifiants de publication et s’exécute wp_update_post()sur chacun afin de changer leur statut de publication en publié. (Si vous voulez que cela soit efficace, vous voudrez peut-être envisager de ne mettre à jour que ceux qui ne sont pas encore publiés).

Une fois que nous avons terminé notre action sur les éléments sélectionnés, nous devons créer une URL vers laquelle rediriger une fois WordPress terminé. Nous ajoutons un argument personnalisé à l’URL de redirection fournie. Ceci est facultatif mais nécessaire si nous voulons afficher un avis d’administration. Nous pouvons ajouter tout ce que vous voulez. Mais dans l’exemple ci-dessus, nous ajoutons simplement un nouvel argument de requête avec add_query_arg()le paramètre ‘ changed-to-published‘ au nombre d’ID de publication qui ont été affectés. Il s’agit d’informations utiles pour un avis.

Afficher un avis une fois notre action groupée personnalisée terminée

Si vous effectuez notre action groupée personnalisée maintenant, vous remarquerez qu’une fois que WordPress a terminé l’action groupée, il recharge la page avec l’URL suivante : "wp-admin/edit.php?changed-to-published=2". « 2 » est le nombre de messages sur lesquels nous avons appliqué notre action. Cela nous permet d’ajouter un avis d’administration personnalisé qui se déclenche si «modifié en publié » est défini.

Afin d’afficher les avis d’administration, nous pouvons utiliser l’action admin_notices. Nous vérifions la variable globale de PHP, $_REQUEST, qui est remplie avec les valeurs soumises par le formulaire si ‘ changed-to-published‘ existe. Si c’est le cas, cela signifie que notre action groupée personnalisée vient d’être effectuée. Nous afficherons alors du texte incluant le nombre de posts appliqués.

Et c’est tout!

Tutoriel : Comment ajouter une action groupée personnalisée dans WordPress Admin

Autres utilisations de l’action groupée personnalisée

Gardez à l’esprit que dans le handle_bulk_actions-<screen>crochet, vous pouvez faire pratiquement tout ce que vous voulez sur les éléments sélectionnés. Vous pouvez mettre à jour la méta de publication personnalisée, modifier les rôles des utilisateurs, envoyer un e-mail ou publier une requête HTTP à une application tierce.

Par exemple; si vous vouliez une action groupée pour mettre à jour une méta de publication personnalisée qui indique si les publications sont vérifiées ou non, en utilisant une action groupée personnalisée avec la clé ‘ mark-as-verified‘ :

add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) { if ($action == 'mark-as-verified') { foreach ($post_ids as $post_id) { update_post_meta($post_id, 'verified', '1'); } $redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url); } return $redirect_url; }, 10, 3);

Combinez ce qui précède avec une colonne personnalisée qui affiche la valeur de "vérifié" dans les listes de messages – comme nous l’avons fait dans ce post, et cela devient très utile.

Tutoriel : Comment ajouter une action groupée personnalisée dans WordPress Admin

Source d’enregistrement: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More