✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Query al database per aggiornare rapidamente i dati, parte 1

15

Questa non è la prima volta che ne parlo, ma una delle sfide che derivano dal parlare di scrivere query dirette al database per aggiornare le informazioni nel database di WordPress è che ti lasci aperto a qualcosa come:

Sì, ma c’è un’API per fare qualcosa del genere.

E, in molti casi, è vero. Anch’io sono un grande fan del loro utilizzo. Ma ci sono momenti in cui le query di database dirette e parametrizzate possono essere una scelta più ottimale.

Query al database per aggiornare rapidamente i dati, parte 1

No, non è un database, ma non sarebbe fantastico se assomigliassero a questo? Foto di Tobias Fischer su Unsplash

Questo, ovviamente, dipende dall’ambiente in cui stai lavorando e dai requisiti del tuo progetto.

Quindi questo è un altro post che sarà un’illustrazione di come utilizzare $ wpdb per aggiornare rapidamente le informazioni in base ai metadati (senza utilizzare qualcosa come WP_Query o WP_Meta_Query per gestirlo).

Query al database per aggiornare rapidamente i dati, parte 1

Lo suddividerò in due parti perché la funzione iniziale che ti mostrerò sta facendo più di una cosa.

Non ne sono un fan.

In secondo luogo, è anche un’opportunità per riprogettare le funzioni per comportarsi in modo più orientato agli oggetti (che è qualcosa di cui sono un fan e di cui sono sempre felice di promuovere ).

Per ora, però, lasciami esporre il problema in questione

  1. Sto importando un po’ di informazioni da un’API di terze parti.
  2. Le informazioni vengono mappate sulla tabella wp_posts e sulla tabella wp_postmeta.
  3. Ci sono alcuni metadati che sono criteri per dettare lo stato di un post. Oppure, più direttamente, se è presente un pezzo di metadati, allora un post dovrebbe avere lo stato del post impostato su bozza in modo che non venga visualizzato nella query principale.

Per risolvere questo problema, devono accadere due cose:

  1. Abbiamo bisogno degli ID dei post,
  2. E dobbiamo cambiare lo stato dei post.

Prima di impostare le query e il resto del codice, supponiamo che la meta chiave che stiamo utilizzando sia chiamata in modo creativo acme-status. E con questo, iniziamo.

1 Prendi gli ID Post con la Meta Key associata

Per prima cosa creeremo una funzione chiamata setInactivePosts. Questo è più generico di quanto sarebbe se lavorassi in un dominio specifico, ma hai capito.

Quindi imposteremo una query che recupererà tutti gli ID post che hanno quella specifica meta chiave :

Qui abbiamo una serie di risultati. Ma prima di fare qualsiasi cosa, dobbiamo assicurarci di avere dati su cui operare.

2 Uscire in anticipo?

Prima di procedere con l’aggiornamento delle informazioni, tuttavia, dovremmo verificare se ci sono risultati. E se non ci sono?

Allora possiamo scappare.

3 Aggiorna lo stato del post

Ma se ci sono risultati, dovremmo scorrerli e aggiornare lo stato del loro post :

Allora com’è tutto insieme?

4 Tutti insieme

Quando mettiamo insieme questa funzione più grande del necessario, questo è ciò che vedi :

Ma nel prossimo post, lo riorganizzeremo un po’ per renderlo più orientato agli oggetti.

Una nota per gli amministratori di database

Per quelli di voi che sono esperti in SQL-fu, allora sapete che questo può essere probabilmente affrontato in una singola query; tuttavia, lo scopo di questo post e del post successivo è duplice:

  1. Per mostrare come usare $wpdb per ottenere qualcosa velocemente,
  2. Per mostrare come scomporre un metodo procedurale per fare qualcosa in un metodo orientato agli oggetti per fare qualcosa.

Detto questo, grazie per tutte le domande. 👍🏻

Fonte di registrazione: 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