Werken met aangepaste databasetabellen in WordPress
Ik heb je vele manieren laten zien waarop WordPress al de meest flexibele CMS is 5 Dingen die je niet had kunnen weten Je zou met Wordpress kunnen doen 5 dingen die je niet had kunnen weten Je zou het met Wordpress kunnen doen Als het meest veelzijdige blogsysteem ooit, het is geen verras dat ontwikkelaars zich gedraaid hebben en dat Wordpress zo veel meer is geworden door het slimme gebruik van plug-ins. Als je dacht dat Wordpress alleen bedoeld was voor ... Lees meer. Een quick scan van de pagina Best of WordPress Plugins onthult ook enkele van de vele unieke en niche manieren waarop u uw blog harder kunt laten werken. Ik heb je zelfs laten zien hoe je aangepaste berichttypen kunt gebruiken. Hoe maak je je eigen evenementenoverzicht met behulp van aangepaste berichttypen [Wordpress] Hoe maak je je eigen evenementenoverzicht met behulp van aangepaste berichttypen [Wordpress] Een van de voordelen van het gebruik van WordPress is zijn enorme flexibiliteit. Versie 3 introduceerde het concept van Custom Post Types om de ingebouwde functionaliteit uit te breiden. Laten we vandaag eens kijken wat u zou kunnen doen ... Lees meer om uw eigen mini-database samen te stellen Maak een productoverzichtsdatabase met Wordpress: aangepaste berichttypen, aangepaste velden, populaire afbeeldingen en widgets! Maak een productbeoordelingsdatabase met Wordpress: aangepaste berichttypen, aangepaste velden, populaire afbeeldingen en widgets! De vorige keer hebben we je laten zien hoe je een eenvoudige evenementenlijst kunt maken met misschien wel de meest krachtige functie van WordPress 3.0 - aangepaste berichttypen. Na enkele verzoeken om dit verder te ontwikkelen, zijn we vandaag ... Lees meer; maar ik heb één ding eruit gelaten, denk ik.
Wat als u al een database van bijvoorbeeld klantinformatie heeft, maar u wilt die gegevens kunnen opvragen en deze binnen een WordPress-sjabloon kunnen weergeven? Vandaag laat ik je zien hoe je dat moet doen, veilig binnen de WordPress-engine.
Vereisten
- Uw eigen door uzelf gehoste WordPress-site, uiteraard.
- Elementaire PHP- en MySQL-vaardigheden - ik raad de Tizag PHP- en MySQL-zelfstudies aan, omdat ze meer dan genoeg bevatten en je ze op een dag kunt doornemen en ze opnieuw kunt raadplegen wanneer dat nodig is.
- Een bestaande dataset in MySQL.
- Opdrachtregel van PHPMyAdmin-toegang om de databases samen te voegen.
- Een enkele database met beide gegevenssets - dit betekent dat u ofwel uw WordPress-databasetabellen samenvoegt tot een bestaande database en wijzigt wp-config.php om de nieuwe gebruikersnaam- en wachtwoordgegevens van de database weer te geven; of importeer een bestaande dataset in uw WordPress-database. Het is gemakkelijker als u geen ander systeem hebt dat op de gegevens vertrouwt. Hoe dan ook, ik ga ervan uit dat je deze stap al hebt gedaan - bekijk mijn artikel over het maken van een volledige databaseback-up via een SSH-opdrachtregel Hoe een back-up van je website te maken via de SSH-opdrachtregel Hoe een back-up van je website te maken via SSH Commandolijn Het maken van een back-up van uw website of blog kan een dure en zware taak zijn, waarvoor een verscheidenheid aan plug-ins of aanvullende plannen van uw hostingprovider vereist zijn, maar het hoeft niet echt te zijn. Als je SSH hebt ... Lees meer als je daar wat tips nodig hebt.
Deze tutorial is ongeveer net zo geavanceerd als we bij MakeUseOf gaan doen, maar het zou voor jou een wereld van mogelijkheden moeten openen.
Waarom zou ik dit doen??
Ondanks de vele plug-ins en uitbreidingen waarover we beschikken in WordPress, heb je soms al een dataset en migreer je deze naar een indeling. WordPress-likes zouden meer gedoe zijn dan het waard is, vooral als je dan een ander systeem hebt waarmee je kunt samenwerken.
Vandaag neem ik het voorbeeld van een eenvoudige klantinformatiedatabase en we zullen een paginasjabloon maken met deze klanten - alleen voor geregistreerde WordPress-gebruikers (hoewel de pagina zelf toegankelijk is vanaf de voorkant van de site) ).
Als een referentie voor kolom- en tabelnamen in de database, zou u het handig kunnen vinden om de databasebrowser-plug-in te installeren, die u ook in staat stelt waar en bestellen door query's om uw SQL-code te testen. Hier is een screenshot met een voorbeeldgegevensset die ik heb gemaakt - in dit geval een tabel met de naam Klanten, met wat basisinformatie over elk van mijn zeer belangrijke klanten.
Wat gaan we hier precies doen?
- Een nieuwe paginasjabloon maken waarop we een aangepaste PHP-code kunnen toepassen.
- Kijken hoe u een aangepaste query naar de database kunt maken en de resultaten vervolgens analyseren - met behulp van ingebouwde WordPress-databaseklassen.
- Kijken naar machtigingen voor het geval u de toegang wilt beperken.
Een aangepaste sjabloon maken
Als u een deel van uw eigen PHP-code wilt gebruiken, kunt u dit het gemakkelijkst doen door een aangepaste sjabloon te maken en vervolgens de sjabloon toe te passen op een bepaalde pagina die u in WordPress maakt. Begin met het openen van je themabestanden en het dupliceren van de page.php (of single.php als er geen is). Hernoem het iets voor de hand liggend, zoals “template-customers.php” zoals ik heb gekozen.
Helemaal boven aan het bestand moeten we aan WordPress vertellen dat dit een aangepaste sjabloon is. Doe dit door het volgende toe te voegen (dit is een reactie in de PHP-stijl, dus het zou moeten zijn na elke openende PHP-tag indien aanwezig):
/ * Sjabloonnaam: klanten * /
Natuurlijk, noem het wat je maar wilt.
Zoek nu de hoofdinhoudsfunctie. Je kunt het verwijderen als je wilt, maar ik ga gewoon de extra code erna toevoegen. Met het standaardtwarentwintig-elf-thema, ben je op zoek naar:
Maar in de meeste thema's zal het iets zijn als:
Dat is het bit dat uw berichtinhoud weergeeft, dus alles wat u daarna toevoegt, wordt net na het hoofdgedeelte van de inhoud weergegeven. Gewoon om te controleren of alles werkt, laten we een eenvoudige echo-instructie toevoegen en het bestand opslaan.
Voordat we dit kunnen controleren, moeten we een pagina maken op de WordPress-beheerpagina en onze paginasjabloon hierop toepassen.
Publiceer en bekijk de pagina om te zien of uw echo-statement heeft gewerkt.
De aangepaste queryklasse
Om directe toegang tot de database te krijgen, hoeft u alleen maar het $ wpdb-object te gebruiken door het globaal te maken. Deze drie regels zouden het moeten doen - vervang de generieke echo verklaring die we eerder hebben gemaakt met dit:
get_results ("SELECT * FROM klanten;"); print_r ($ klanten); ?>
Sla op en vernieuw de pagina. De print_r () functie gewoon alle gegevens van het object van de klant weggooit - dus u zou moeten zien dat uw eenvoudige SQL-statement om alles uit de klantentabel te selecteren goed heeft gewerkt. Het enige wat u hoeft te doen is de resultaten analyseren naar iets dat bruikbaar is. U kunt natuurlijk elke SQL-selectinstructie in de invoegtoepassing plaatsen get_results () methode, maar ik ben niet hier om je SQL te leren zodat we vasthouden aan alles gewoon voor nu te pakken.
Om de resultaten te ontleden in iets dat zinvoller is, gebruik ik voorlopig een basistabel. Vervang de print_r methode met de volgende code (maak je geen zorgen, ik zal de volledige code later plakken als je het niet zelf wilt samenvoegen):
echo "
"$ Klant-> naam." | "; echo""$ Klant-> e-mail." | "; echo""$ Klant-> telefoon." | "; echo""$ Klant-> adres." | "; echo"
Zodra u elk klantobject in een foreach, je hebt eenvoudig toegang tot de veldnamen $ Klant-> field_name - het kan echt niet eenvoudiger.
Dingen beveiligen
In dit geval wil ik niet dat mijn klantgegevens aan iedereen worden getoond en door de zoekmachines worden geïndexeerd - maar ik wil nog steeds dat het aan de voorkant wordt weergegeven met deze sjabloon; Dus, wat kunnen we doen? Eenvoudig, we gaan gebruik maken van de WordPress-voorwaarde is_user_logged_in (), en een snel bericht weergeven als dit niet het geval is. Hier is het hele blok code opnieuw met de nieuwe voorwaardelijke toegevoegd:
get_results ("SELECT * FROM klanten;"); echo "
"$ Klant-> naam." | "; echo""$ Klant-> e-mail." | "; echo""$ Klant-> telefoon." | "; echo""$ Klant-> adres." | "; echo"
Sla op en ververs en je zou nog steeds de inhoud moeten zien. Log echter uit, dan vernieuw de pagina en je ziet nu de “Sorry, alleen geregistreerde gebruikers ... ” bericht.
Als u dit wilt beperken tot bepaalde gebruikersniveaus in plaats van alle geregistreerde gebruikers, gebruikt u de current_user_can () voorwaardelijk in plaats daarvan, samen met een bijbehorende mogelijkheid (lees meer over mogelijkheden op de codex). Dit zou bijvoorbeeld controleren op admin-gebruikers - de enige gebruikers die plugin-opties kunnen beheren:
current_user_can ('manage_options')
Samenvatting
Ik laat het daar vandaag liggen, aangezien al het andere een SQL-bewerking wordt. Hoe duizenden WordPress-berichten te bewerken met slechts één SQL-opdracht Hoe duizenden WordPress-berichten te bewerken met slechts één SQL-opdracht Een blog groeien duurt jaren, en heel veel van pijn en strijd. Dan zijn er de belangrijkste overgangen, wanneer je je realiseert dat je een aantal grote veranderingen moet aanbrengen, en het gaat om ... Lees meer tutorial of hoe je je uitvoeringen kunt stijlen met CSS. De lucht is echt de limiet met WordPress en ik hoop dat dit nuttig is voor sommigen van u in uw WordPress-projecten.
Volgende week zal ik het iets lastigere onderwerp van het opnieuw invoeren van gegevens in uw aangepaste database aanpakken met behulp van een formulier op de pagina en een beetje AJAX / jQuery-magie.
Heb je nog geen WordPress-installatie? Bekijk onze handleiding voor het installeren van WordPress op Bluehost Hoe installeer ik WordPress op Bluehost Hoe installeer ik WordPress op Bluehost Bluehost is een van de grootste, meest populaire webhostingproviders. Hier is een eenvoudige handleiding voor het installeren van WordPress op Bluehost. Lees verder .
Meer informatie over: Webmasterhulpprogramma's, WordPress-plug-ins.