Arbeide med tilpassede databasetabeller i WordPress

Arbeide med tilpassede databasetabeller i WordPress / Wordpress og webutvikling

Jeg har vist deg mange måter som WordPress er allerede den mest fleksible CMS 5 ting du kanskje ikke har kjent du kunne gjøre med Wordpress 5 ting du kanskje ikke har kjent du kunne gjøre med Wordpress Å være det mest allsidige blogging-systemet noensinne, det er nei Overrask at utviklere har vridd og trukket Wordpress inn i å bli så mye mer gjennom smart bruk av plugins. Hvis du trodde Wordpress var bare for ... Les mer. En rask skanning av Best of WordPress Plugins-siden vil også avsløre noen av de mange unike og nisje-måtene du kan gjøre bloggen din vanskeligere. Jeg har selv vist deg hvordan du kan bruke tilpassede posttyper. Hvordan lage din egen hendelsesliste ved hjelp av egendefinerte innleggtyper. [Wordpress] Slik lager du din egen hendelsesliste ved hjelp av egendefinerte innleggtyper [Wordpress] En av fordelene ved å bruke Wordpress er sin rene fleksibilitet. Versjon 3 introduserte konseptet med egendefinerte innleggstyper for å utvide den innebygde funksjonaliteten. La oss ta en titt i dag på hva du kan gjøre ... Les mer for å lage din egen mini-database Lag en produktanmeldelsesdatabase med Wordpress: Egendefinerte innleggstyper, egendefinerte felt, Utvalgte bilder og widgets! Lag en produktanmeldelsesdatabase med Wordpress: Egendefinerte innleggstyper, egendefinerte felt, utvalgt bilder og widgets! Sist gang vi viste deg hvordan du lager en enkel hendelsesliste med kanskje den kraftigste funksjonen i WordPress 3.0 - egendefinerte innleggstyper. Etter noen forespørsler om å utvikle dette videre, i dag blir vi ... Les mer; men jeg har forlatt en ting ut, tror jeg.

Hva om du allerede har en database med si, kundeinformasjon, men du vil kunne spørre om dataene og vise den i en WordPress-mal? I dag skal jeg vise deg hvordan du gjør det, trygt i WordPress-motoren.

Krav

  • Din egen selvbehandlede WordPress-side, åpenbart.
  • Grunnleggende PHP og MySQL ferdigheter - Jeg anbefaler Tizag PHP og MySQL opplæringen, da de dekker mer enn nok, og du kan jobbe gjennom dem på en dag og referere dem igjen når det trengs.
  • Et eksisterende datasett i MySQL.
  • Kommandolinje med PHPMyAdmin tilgang til å slå sammen databasene.
  • En enkelt database med begge datasettene - dette betyr at du enten må slå sammen WordPress-databasetabellene i en eksisterende database og endre wp-config.php å reflektere den nye databasen brukernavn og passord detaljer; eller importer et eksisterende datasett inn i WordPress-databasen. Det er lettere hvis du ikke har et annet system som stole på dataene. Uansett vil jeg anta at du allerede har gjort dette trinnet - sjekk ut artikkelen min om hvordan du gjør en fullstendig database sikkerhetskopiering via en SSH-kommandolinje Slik sikkerhetskopierer du ditt nettsted gjennom SSH-kommandolinjen Slik sikkerhetskopierer du ditt nettsted gjennom SSH Kommandolinje Sikkerhetskopiering av webområdet ditt eller bloggen kan være en dyr og vanskelig oppgave, og krever en rekke plugins eller tilleggsplaner fra din hostingleverandør - men det trenger ikke å være virkelig. Hvis du har SSH ... Les mer hvis du trenger noen pekere der.

Denne opplæringen er omtrent så avansert som vi kommer til å komme på MakeUseOf, men det skal åpne opp en verden av muligheter for deg.

Hvorfor skulle jeg gjøre dette?

Til tross for de mange plugins og utvidelser som er tilgjengelige for oss i WordPress, noen ganger har du allerede et datasett og migrerer det til et format. WordPress liker å være mer problem enn det er verdt - spesielt hvis du har et annet system, må du samarbeide med.

I dag tar jeg eksemplet på en enkel kundeinformasjonsdatabase, og vi lager en sidemal som viser disse kundene - kun til registrerte WordPress-brukere (selv om siden selv vil være tilgjengelig fra forsiden av nettstedet ).

Som en referanse for kolonne- og tabellnavn i databasen, kan det hende du finner det nyttig å installere programbrowser-pluginet, som også lar deg kjøre grunnleggende hvor og rekkefølge etter spørringer for å teste din SQL-kode. Her er et skjermbilde med et utvalg datasett jeg har opprettet - i dette tilfellet et bord kalt Kunder, som inneholder noen grunnleggende opplysninger om hver av mine svært viktige kunder.

Hva er akkurat det vi skal gjøre her?

  • Opprette en ny sidemal som vi kan bruke til å tilpasse noen egendefinerte PHP-kode til.
  • Se på hvordan du lager en tilpasset spørring til databasen, og deretter analyser resultatene - ved hjelp av innebygde WordPress-databaser.
  • Ser på tillatelser hvis du vil begrense tilgangen.

Lag en tilpasset mal

Hvis du vil bruke noen av din egen PHP-kode, er den enkleste måten å gjøre dette på å lage en egendefinert mal, og deretter bruke malen til en bestemt side du oppretter i WordPress. Start med å åpne temafilene dine og duplisere page.php (eller single.php hvis det ikke er en). Gi nytt navn til noe som er åpenbart, som “mal-customers.php” som jeg har valgt.

Øverst på filen, må vi fortelle WordPress dette er en egendefinert mal. Gjør dette ved å legge til følgende (dette er en PHP stil kommentar, så det bør være etter noen åpning PHP tag hvis tilstede):

/ * Malnavn: Kunder * /

Åpenbart, ring det som du vil.

Finn nå hovedinnholdsfunksjonen. Du kan slette det hvis du vil, men jeg skal bare legge til ekstra koden etter den. Med standard tjue elleve tema, leter du etter:

Men i de fleste temaer vil det være noe som:

Det er den delen som viser innleggets innhold, slik at alt du legger til etter det blir vist like etter hovedinnholdsområdet. Bare for å sjekke at alt fungerer, la vi legge til en grunnleggende ekko-setning og lagre filen.

Før vi kan sjekke dette, må vi opprette en side på administrasjonssiden for WordPress og bruke vår sidemal til den.

Publiser, og sjekk ut siden for å se om ekko-setningen har fungert.

Den tilpassede spørreklassen

For å få direkte tilgang til databasen, er alt du trenger å gjøre å bruke $ wpdb-objektet ved å gjøre det globalt. Disse tre linjene bør gjøre det - erstatt den generiske ekko-setningen vi tidligere gjorde med dette:

get_results ("SELECT * FROM customers;"); print_r ($ kunder); ?>

Lagre og oppdater siden. De print_r () funksjon bare dumper ut alle dataene fra kundens objekt - så du bør se at din enkle SQL-setning for å velge alt fra kundebordet har fungert pent. Nå er alt du trenger å gjøre, analysere resultatene til noe brukbart. Selvfølgelig kan du sette hvilken som helst SQL-setning i get_results () metode, men jeg er ikke her for å lære deg SQL, så vi vil holde fast med å bare gripe alt for nå.

For å analysere resultatene ut i noe mer meningsfylt, bruker jeg bare et grunnleggende bord for nå. Bytt ut print_r metode med følgende kode (ikke bekymre deg, jeg legger inn hele koden senere hvis du ikke vil styre den sammen selv):

ekko ""; foreach ($ kunder som $ kunde) echo""; ekko ""; ekko ""; ekko ""; ekko ""; ekko "";  ekko "
"$ Kunde> navn.""$ Kunde> e-post.""$ Kunde> telefon.""$ Kunde> adresse."
";

Når du har hvert kundeobjekt inne i en for hver, Du kan lett få tilgang til feltnavnene med $ Kunde> FIELD_NAME - det kunne ikke vært enklere.

Sikring av ting

I dette tilfellet ønsker jeg egentlig ikke at kundedataene mine vises til bare noen og indeksert av søkemotorene - men jeg vil fremdeles ha det på forsiden som vises med denne malen; så hva kan vi gjøre? Enkelt, vi skal gjøre bruk av WordPress betinget is_user_logged_in (), og vis en rask melding hvis de ikke er det. Her er hele koden av kode igjen med den nye betingede tillegg:

get_results ("SELECT * FROM customers;"); ekko ""; foreach ($ kunder som $ kunde) echo""; ekko ""; ekko ""; ekko ""; ekko ""; ekko "";  ekko "
"$ Kunde> navn.""$ Kunde> e-post.""$ Kunde> telefon.""$ Kunde> adresse."
"; annet: ekko" Beklager, bare registrerte brukere kan se denne informasjonen "; endif;?>

Lagre og oppdatere, og du bør fortsatt se innholdet. Men logg ut, deretter Oppdater siden, og du vil nå se “Beklager, bare registrerte brukere ... ” budskap.

Hvis du vil begrense dette til bestemte nivåer av brukere i stedet for alle registrerte brukere, vil du bruke current_user_can () betinget i stedet, sammen med en tilhørende evne (les mer om evner på kodeksen). Dette vil sjekke for admin brukere, for eksempel - de eneste brukerne som kan administrere plugin alternativer:

current_user_can ('manage_options')

Sammendrag

Jeg kommer til å legge det der i dag som noe annet ville bli en SQL Slik redigerer du tusenvis av Wordpress-innlegg med bare ett SQL-kommando Slik redigerer du tusenvis av Wordpress-poster med bare ett SQL-kommando Ved å vokse en blogg tar det mange år og mye av smerte og kamp. Da er det de store overgangene, når du innser at du må gjøre noen store endringer, og det kommer til å ta ... Les mer veiledning eller hvordan du stiler utdataene dine med CSS. Himmelen er virkelig grensen med WordPress, og jeg håper dette kommer til nytte for noen av dere i dine WordPress-prosjekter.

Neste uke skal jeg takle det litt vanskeligere emnet for hvordan du setter inn data tilbake til din egendefinerte database ved hjelp av et skjema på siden, og litt av AJAX / jQuery magi.

Har du ikke et WordPress-installasjon ennå? Sjekk ut vår guide for å installere WordPress på Bluehost Slik installerer du WordPress på Bluehost Slik installerer du WordPress på Bluehost Bluehost er blant de største, mest populære web hosting-leverandørene. Her er en enkel veiledning om hvordan du installerer WordPress på Bluehost. Les mer .

Utforsk mer om: Verktøy for nettredaktører, Wordpress-pluginprogrammer.