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

Requêtes de base de données pour mettre à jour rapidement les données, partie 1

10

Ce n’est pas la première fois que je mentionne cela, mais l’un des défis liés à l’écriture de requêtes directes de base de données pour mettre à jour les informations dans la base de données WordPress est que vous vous laissez ouvert à quelque chose comme :

Ouais, mais il y a une API pour faire quelque chose comme ça.

Et, dans de nombreux cas, c’est vrai. Je suis aussi un grand fan de leur utilisation. Mais il y a des moments où les requêtes de base de données directes et paramétrées peuvent être un choix plus optimal.

Requêtes de base de données pour mettre à jour rapidement les données, partie 1

Non, ce n’est pas une base de données, mais ce ne serait pas génial s’ils ressemblaient à ça ? Photo de Tobias Fischer sur Unsplash

Cela dépend bien sûr de l’environnement dans lequel vous travaillez et des exigences de votre projet.

Donc, c’est encore un autre article qui va être une illustration de la façon d’utiliser $wpdb pour mettre à jour rapidement les informations basées sur les métadonnées (sans utiliser quelque chose comme WP_Query ou WP_Meta_Query pour le gérer).

Requêtes de base de données pour mettre à jour rapidement les données, partie 1

Je vais diviser cela en deux parties parce que la fonction initiale que je vais vous montrer fait plus d’une chose.

Je ne suis pas fan de ça.

Deuxièmement, c’est aussi une opportunité de repenser les fonctions pour qu’elles se comportent de manière plus orientée objet (ce dont je suis fan et que je suis toujours heureux de promouvoir ).

Pour l’instant, cependant, permettez-moi d’exposer le problème qui se pose

  1. J’importe un peu d’informations à partir d’une API tierce.
  2. Les informations sont mappées à la table wp_posts ainsi qu’à la table wp_postmeta.
  3. Il y a certaines métadonnées qui sont des critères pour dicter le statut d’un message. Ou, plus directement, si un élément de métadonnées est présent, un article doit avoir son statut d’article défini sur brouillon afin qu’il n’apparaisse pas dans la requête principale.

Pour résoudre ce problème, deux choses doivent se produire :

  1. Nous avons besoin des identifiants des postes,
  2. Et nous devons changer le statut des postes.

Avant de configurer les requêtes et le reste du code, supposons que la clé méta que nous utilisons s’appelle de manière créative acme-status. Et avec ça, commençons.

1 Saisissez les identifiants de publication avec la méta-clé associée

Tout d’abord, nous allons créer une fonction appelée setInactivePosts. C’est plus générique qu’il ne le serait si vous travaillez dans un domaine spécifique, mais vous comprenez.

Ensuite, nous allons configurer une requête qui récupérera tous les identifiants de publication qui ont cette clé méta spécifique :

Ici, nous avons un tableau de résultats. Mais avant de faire quoi que ce soit, nous devons nous assurer que nous disposons de données sur lesquelles opérer.

2 Sortir tôt ?

Avant d’aller de l’avant avec la mise à jour des informations, cependant, nous devrions vérifier s’il y a des résultats. Et s’il n’y en a pas ?

Ensuite, nous pouvons nous esquiver.

3 Mettre à jour le statut de la publication

Mais s’il y a des résultats, nous devrions les parcourir et mettre à jour leur statut de publication :

Alors à quoi ça ressemble tous ensemble ?

4 Tous ensemble

Lorsque nous assemblons cette fonction plus grande que nécessaire, voici ce que vous voyez :

Mais dans le prochain article, nous réorganiserons un peu cela pour le rendre plus orienté objet.

Une note pour les administrateurs de base de données

Pour ceux d’entre vous qui connaissent bien SQL-fu, vous savez que cela peut probablement être résolu en une seule requête. cependant, le but de ce message et du message qui suit est double :

  1. Pour montrer comment utiliser $wpdb pour réaliser quelque chose rapidement,
  2. Montrer comment décomposer une méthode procédurale de faire quelque chose en une méthode orientée objet de faire quelque chose.

Cela dit, merci pour toutes les questions. 👍🏻

Source d’enregistrement: tommcfarlin.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