Med anpassade frågor kan du göra data läsning och / eller manipulation du vill ha. Omedelbart öppnar en värld av nya möjligheter.
De grundläggande funktionerna i WordPress är bra för de flesta enkla behov, men vad skulle du göra om du vill genomföra vissa specifika behov? Skriver du kanske ett plugin? Då bör du lära dig hur du kan använda SQL-frågor i WordPress just nu! De officiella referenserna finns i WordPress Codex (Custom Queries och WPDB-klassen).
wpdb
KlassDen här globala WordPress-klassen är nyckeln till att använda frågor. Faktum är att varje funktion använder den här klassen.
fråga
Frågfunktionen behöver en sträng som innehåller den anpassade frågan. Det återstående värdet är ett heltal som motsvarar antalet rader som berörs / valda och falska när det finns ett fel.
$ query = "VÄLJ COUNT (äpple) FRÅN frukt"; $ Wpdb-> fråga ($ query);
get_results
Den här funktionen får flera rader när du utför en fråga. Som standard är resultatet av funktionen en grupp.
$ query = "SELECT * FRÅN wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id VÄR wtt.taxonomy = 'post_tag' och wtt.count = 0"; $ Wpdb-> get_results ($ query);
get_var
Detta kommer att returnera en variabel från databasen, men det fullständiga resultatet av frågan cachas för senare användning. Returnerar NULL om inget resultat hittas.
$ query = "VÄLJ COUNT (*) FRÅN användare"; $ Wpdb-> get_var ($ query);
get_row
En fullständig rad returneras som ett resultat av funktionen, som kan vara ett objekt, en associativ array eller en numeriskt indexerad grupp. NULL är resultatet när ingen matchande data hittades. result_type
kan vara OBJEKT
, ARRAY_A
eller ARRAY_N
(objekt, associativ array eller numrerad array). Offset är ett heltal med en standard på 0.
$ query = "VÄLJ * FRÅN wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);
get_col
För att få en kolumn, använd den här funktionen. Utgången kommer att vara en måttlig uppsättning. En tom array returneras om inget resultat hittas. Den andra parametern är kolumnförskjutningen.
$ query = "VÄLJ * FRÅN wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ query, 3);
Enligt php.net manualen:
"De [förberedda frågorna] kan betraktas som en slags kompilerad mall för SQL som en applikation vill köra, som kan anpassas med hjälp av variabla parametrar."
Du kan skydda SQL-frågor mot SQL-injektionsattacker. Korta data i frågor måste vara SQL-escape innan frågan utförs för att förhindra injektionsattacker. Detta kan enkelt göras med förberedelsemetoden. I följande exempel kommer värdena "10", "apa" och "äpple" att rymma när de används i den här metoden.
// Användning: $ wpdb-> förbereda ("fråga" [, value_parameter, value_parameter ...]); $ wpdb-> fråga ($ wpdb-> förbereda ("INSERT IN TO test_table (post_id, animal, food) VALUES (% d,% s,% s)", array (10, "apa", "äpple"))) ;
Du kan aktivera och inaktivera felmeddelanden med show_errors
och hide_errors
funktioner, men du kan också skriva ut:
$ Wpdb-> show_errors (); $ Wpdb-> hide_errors ();
Att radera cacheminnet kan göras med spola
fungera.
$ Wpdb-> flush ();
$ wpdb-> insert ($ tabell, $ data, $ format); $ wpdb-> insert ('food', array ('frukt' => 'äpple', 'år' => 2012), array ('% s', '% d'));
De använda parametrarna i ordning är:
$ uppgifter
. Om inte närvarande, kommer alla värden att behandlas som strängar$ wpdb-> uppdatering ('mat', array ('fruit' => 'apple', // string 'year' => 'value2' // heltal (nummer)), array ('ID' => 1) array ('% s', // value1 '% d' // value2), array ('% d'));
De använda parametrarna i ordning är:
Du kan få information om kolumnerna för det senaste resultatet med den här funktionen. När en funktion har returnerats en OBJEKT
och det finns egenskaper du inte vet mycket om, det kan vara användbart.
$ wpdb-> get_col_info ('typ', förskjutning);
namn
- kolumnnamn (detta är standard)tabell
- namnet på tabellen kolumnen tillhörMaxlängd
- högsta längden på kolumnennot_null
- 1 om kolumnen inte kan vara NULLWordPress databas tabeller kan refereras i wpdb
klass. Det här är mycket praktiskt eftersom tabellnamn kan vara annorlunda än de standardiserade. Här är en lista över WordPress databas tabell referenser:
$ Wpdb-> inlägg;
$ Wpdb-> postmeta;
$ Wpdb-> kommentarer;
$ Wpdb-> commentmeta;
$ Wpdb-> villkor;
$ Wpdb-> term_taxonomy;
$ Wpdb-> term_relationships;
$ Wpdb-> användare;
$ Wpdb-> usermeta;
$ Wpdb-> länkar;
$ Wpdb-> alternativ;
Observera att vi inte behöver inkludera prefixet, det är fördelen här där wpdb
klass tar hand om det för oss.
Där har vi det! En referens för anpassade frågor i WordPress, allt på ett ställe för dig.