Skrive tilpassede søk i WordPress

Med egendefinerte søk kan du gjøre data lesing og / eller manipulasjon du vil ha. Øyeblikkelig åpner en verden med nye muligheter.


Hvorfor bruke tilpassede søk?

De grunnleggende funksjonalitetene i WordPress er fine for de fleste enkle behov, men hva ville du gjøre hvis du vil implementere noen spesifikke behov? Skriver du et plugin kanskje? Da bør du lære hvordan du kan bruke SQL-spørringer i WordPress akkurat nå! De offisielle referansene finnes i WordPress Codex (Custom Queries og WPDB-klassen).


De wpdb Klasse

Denne globale WordPress-klassen er nøkkelen for bruk av spørringer. Faktisk bruker hver funksjon denne klassen.


Ved hjelp av spørsmål

Spørringsfunksjonen trenger en streng som inneholder den egendefinerte spørringen. Returneringsverdien er et heltall som tilsvarer antall rader som er berørt / valgt, og falsk når det oppstår en feil.

 $ query = "VELG COUNT (eple) fra frukt"; $ Wpdb-> spør ($ query);

get_results

Denne funksjonen får flere rader når du utfører et søk. Som standard er resultatet av funksjonen en matrise.

 $ query = "VELG * FRA wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id HVOR wtt.taxonomy = 'post_tag' og wtt.count = 0"; $ Wpdb-> get_results ($ query);

get_var

Dette returnerer en variabel fra databasen, men det komplette resultatet av spørringen er cached for senere bruk. Returnerer NULL hvis det ikke ble funnet noe resultat.

 $ query = "VELG COUNT (*) FRA brukere"; $ Wpdb-> get_var ($ query);

get_row

En komplett rad vil bli returnert som et resultat av funksjonen, som kan være en gjenstand, en associativ array eller en numerisk indeksert array. NULL er resultatet når ingen matchende data er funnet. result_type kan være GJENSTAND, ARRAY_A eller ARRAY_N (objekt, assosiativ array eller nummerert array). Offset er et heltall med en standard på 0.

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ spørring, ARRAY_A, 3);

get_col

For å få en kolonne, bruk denne funksjonen. Output vil være et dimensjonalt utvalg. Et tomt utvalg vil bli returnert dersom det ikke ble funnet noe resultat. Den andre parameteren er kolonnforskyvningen.

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ spørring, 3);

Forberedte spørringer

Ifølge php.net manualen:

"De [forberedte spørringer] kan betraktes som en slags kompilert mal for SQL som et program ønsker å kjøre, som kan tilpasses ved hjelp av variable parametere."

Du kan beskytte SQL-spørringer mot SQL-injeksjonsangrep. Kortfattet data i spørringer må være SQL-rømt før spørringen utføres for å forhindre injeksjonsangrep. Dette kan enkelt gjøres med forberedelsesmetoden. I følgende eksempel vil verdiene "10", "ape" og "eple" bli rømt når de brukes i denne metoden.

 // Bruk: $ wpdb-> forberede ('spørring' [, value_parameter, value_parameter ...]); $ wpdb-> forespørsel ($ wpdb-> forberede ("INSERT IN to test_table (post_id, animal, food) VALUES (% d,% s,% s)", array (10, "ape", "eple"))) ;

Angi feilmeldinger

Du kan slå feilmeldinger på og av med show_errors og hide_errors funksjoner, men du kan også skrive ut:

 $ Wpdb-> show_errors (); $ Wpdb-> hide_errors ();

Cache Control

Slette hurtigbufferen kan gjøres med flush funksjon.

 $ Wpdb-> flush ();

Sette inn data

 $ wpdb-> sett inn ($ tabell, $ data, $ format); $ wpdb-> insert ('mat', array ('fruit' => 'apple', 'year' => 2012), array ('% s', '% d'));

De brukte parametrene i rekkefølge er:

  • navnet på tabellen for å sette inn data i
  • dataene som skal settes inn (kolonne => verdipar) uten å rømme
  • en rekke formater som skal kartlegges til hver av verdiene i $ data. Hvis ikke, vil alle verdier bli behandlet som strenger

Oppdaterer data

 $ wpdb-> update ('mat', array ('fruit' => 'apple', // streng 'år' => 'value2' // heltall (tall)), array ('ID' => 1) array ('% s', // value1 '% d' // value2), array ('% d'));

De brukte parametrene i rekkefølge er:

  • tabellnavn
  • data
  • hvor forholdene
  • format
  • where_format

Kolonneinformasjon

Du kan få informasjon om kolonnene av det nyeste resultatet med denne funksjonen. Når en funksjon har returnert en GJENSTAND og det finnes egenskaper du ikke vet mye om, dette kan være nyttig.

 $ wpdb-> get_col_info ('type', offset);
  • Type: informasjonen du vil hente, noen eksempler er her
    • Navn - kolonne navn (dette er standard)
    • bord - navnet på tabellen kolonnen tilhører
    • maks lengde - Maksimal lengde på kolonnen
    • ikke null - 1 hvis kolonnen ikke kan være NULL
    • mer finnes i WordPress Codex WPDB-referansen
  • Offset: spesifiser kolonnen for å hente informasjon (0 er den første kolonnen)

Referanse WordPress Tabeller

WordPress database tabeller kan refereres i wpdb klasse. Dette er veldig praktisk som tabellnavn kan være annerledes enn standardene. Her er en liste over WordPress database tabell referanser:

  • $ Wpdb-> innlegg;
  • $ Wpdb-> postmeta;
  • $ Wpdb-> kommentarer;
  • $ Wpdb-> commentmeta;
  • $ Wpdb-> vilkår;
  • $ Wpdb-> term_taxonomy;
  • $ Wpdb-> term_relationships;
  • $ Wpdb-> brukere;
  • $ Wpdb-> usermeta;
  • $ Wpdb-> lenker;
  • $ Wpdb-> alternativer;

Merk at vi ikke trenger å inkludere prefikset, det er fordelen her hvor wpdb klassen tar vare på det for oss.

Der har vi det! En referanse for tilpassede søk i WordPress, alt på ett sted for deg.