WordPress-sjabloonstructuur – iedereen zou het moeten kennen! Pagina-uitvoer (PHP en MySQL)

Hallo allemaal! Vandaag zullen we kijken naar de structuur van elk WordPress-websitesjabloon. Waarvan basisbestanden en elementen waarin het is gebouwd. Deze kennis geeft u vertrouwen bij het wijzigen en bewerken van de sjablonen van anderen. En later, als dat zo is basiskennis HTML, CSS en PHP, maak uw eigen eigen thema's. Maar voorlopig kijken we niet zo ver, laten we beginnen bij de basis.

De hoofdbestanden van elke sjabloon. Hun doel.

En dus zou elke sjabloon inherent uit 10 basisbestanden moeten bestaan. Dus laten we ze begrijpen.

Voorbeeld structuur WordPress-sjabloon

stijl.css— sjabloonstijlbladbestand. Elk thema zou dit bestand moeten hebben, omdat het verantwoordelijk is voor de declaratie ervan en het ook kan opslaan aanvullende informatie: naam van de sjabloonauteur, sjabloonversie, startpagina auteur, enz. En het directe doel zijn natuurlijk alle CSS-stijlen.

index.php— het bestand is verantwoordelijk voor het weergeven van het hoofdbestand WordPress-pagina's sjabloon. Houd daar altijd rekening mee bij het opmaken van uw lay-outs startpagina kan zowel statisch als dynamisch zijn.

single.php— een bestand dat verantwoordelijk is voor het uitvoeren van elk afzonderlijk bericht over uw onderwerp. Een voorbeeld is dit artikel dat u aan het lezen bent.

pagina.php— het bestand is verantwoordelijk voor het genereren van statische pagina's. Meestal zijn dit pagina's: contacten, over de auteur, over de bron, enz.

header.php— vormt de header van de site en slaat alle belangrijke metatags voor promotie op.

voettekst.php— het bestand is verantwoordelijk voor het weergeven van de voettekst van de site.

zijbalk.php— vormt de weergave van een zijbalk of, in het Russisch, een zijkolom van een blog of website.

functies.php- dossier verantwoordelijk voor extra functionaliteit sjabloon. In dit bestand wordt bijvoorbeeld de uitvoer van de laatste commentatoren op mijn blog gegenereerd.

opmerkingen.php— het bestand is verantwoordelijk voor het weergeven van opmerkingen voor de sjabloon.

404.php— is verantwoordelijk voor het weergeven van een pagina met een 404-fout.

zoeken.php— het bestand dat verantwoordelijk is voor het weergeven van de zoekpagina.

Optionele bestanden. Maar je moet weten over hun bestaan.

categorie.php— het bestand is verantwoordelijk voor het weergeven van aankondigingen in categorieën (als er geen bestand is, wordt de formatie uitgevoerd met behulp van het index.php-bestand)

tag.php— het bestand is verantwoordelijk voor het weergeven van aankondigingen op de tagspagina (als er geen bestand is, wordt de formatie uitgevoerd met behulp van het index.php-bestand)

taxonomie.php— het bestand is verantwoordelijk voor het weergeven van aankondigingen op taxonomiepagina's (als er geen bestand is, wordt de formatie uitgevoerd met behulp van het index.php-bestand)

auteur.php— het bestand is verantwoordelijk voor het weergeven van aankondigingen van artikelen van een specifieke auteur (als er geen bestand is, wordt de formatie uitgevoerd met behulp van het index.php-bestand)

bijlage.php— is verantwoordelijk voor het uitvoeren van het bijgevoegde bestand.

zoekformulier.php— is verantwoordelijk voor het maken van het zoekformulier.

Als uw sjabloon bestanden uit de optionele lijst bevat, moet u weten dat deze altijd een hogere prioriteit hebben dan het index.php-bestand. Dit kan worden verklaard door het feit dat index.php een algemeen geval is, en laten we zeggen dat tag.php al een specifiek geval is. Deze zijn specifieker en moeten daarom worden waargenomen.

Wat wordt er in de mappen opgeslagen?

Mappen worden meestal gebruikt voor opslag bepaald type bestanden. Bijvoorbeeld: in de map (afbeelding, afbeeldingen, img, etc.) worden afbeeldingsbestanden opgeslagen die betrekking hebben op dit onderwerp. In de JS-map worden scriptbestanden opgeslagen. De inc-map slaat op php-bestanden, die zijn opgenomen (inbegrepen) in bestaande bestanden onderwerpen.

Er kunnen een onbeperkt aantal van dergelijke mappen zijn en ze kunnen verschillende namen hebben. Hun essentie is om de rommel in de sjabloon te elimineren en alles in een soort hiërarchie te brengen.

Screenshot.png - wat voor soort dier is dit?

Normaal gesproken bevat dit bestand een screenshot van de sjabloon, zodat u in het beheerdersdashboard, wanneer u een thema voor een website of blog selecteert, dit als miniatuur kunt zien. De grootte van dit bestand moet 880x660px zijn.

Visuele weergave van de sjabloonstructuur

Schetsmatig wordpress afbeelding sjabloon

Zoals je kunt zien komt de structuur op de foto overeen met de structuur van mijn blog. Ondanks dat templates van verschillende auteurs er verschillend uitzien, zijn ze allemaal gebaseerd op bovenstaande bestanden.

upd: Wees voorzichtig, de tekst bevat satire en het breken van codes

Taal PHP-programmering vindt zijn oorsprong in 1995 en is een product van het geboortetijdperk moderne internet standaarden zoals http (versie 1.0 - 1996), html (versie 2.0 - 1995), javascript (1995), url (1990 - 1994). Aanvankelijk stond de afkorting php voor Personal Home Page Tools, daarna omgezet in Hypertext Preprocessor of “hypertext preprocessor”. Over met behulp van PHP als preprocessor en zal in de volgende paragrafen worden besproken.

Met de PHP-interpreter kunt u speciale tags in elke tekst invoegen, waarmee u in de pagina kunt invoegen dynamische inhoud, wat erg handig is om binnen te gebruiken html-documenten. Het verkregen resultaat wordt onmiddellijk verzonden naar standaard apparaat uitvoer, bekend als stdout (zie voor meer details). Het is mogelijk om de uitvoer te bufferen totdat deze nodig is via de ob_start-functie, maar voor onze eerste html-pagina's Je hebt dit niet nodig. De meest recente HTML-standaard, nummer 5, introduceerde verschillende nieuwe tags om de opmaak te vereenvoudigen en het web leesbaarder en semantischer te maken (wat dat ook betekent). Laten we daarom onmiddellijk profiteren van de volledige kracht van HTML5 en een paginasjabloon met invoegingen schrijven met behulp van de betreffende preprocessor.

Laten we deze pagina opslaan in het index.html-bestand. De functionaliteit van de blog in de eerste versie omvat het opslaan van publicaties in html-formulier pagina's in een vooraf gedefinieerde map (bijvoorbeeld pagina's/) en een menu waarmee u rechtstreeks naar de gewenste publicatie kunt gaan.

Een voorbeeld van een publicatie die op een blogfeed wordt weergegeven.

Laten we een pagina's/map toevoegen aan de hoofdmap van het project en ons artikel opslaan onder een willekeurige naam, bijvoorbeeld 2018-trends.html.

Nu hebben we een webserver nodig om inkomende berichten te verwerken http-verzoeken van gebruikers, en een applicatieserver voor bedrijfslogica. Om geen onnodige entiteiten te creëren, zullen we een klein programma schrijven in de programmeertaal Go, dat zowel als webserver zal fungeren als blogcode zal bevatten. Om gebruikersverzoeken van het hostprogramma naar de preprocessor over te dragen, zullen we gebruiken standaard stroom input (stdin), om gegevens te serialiseren gebruiken we het populaire formaat voor gegevensserialisatie - json.

Script voor het verwerken van invoergegevens:

Blogcode:

hoofd.go

package main import ("encoding/json" "io/ioutil" "net/http" "os/exec" "strings" "github.com/labstack/echo") func main() ( e:= echo.New() e.GET("/", index) e.GET("/pages/:page", index) e.Start(":8000") ) func index(c echo.Context) fout ( outData:= struct ( Menu string `json:"menu"` Pagina's string `json:"pages"` )() outData.Menu = make(string, 0) outData.Pages = make(string, 0) page:= c.Param("pagina" ) bestanden, _ := ioutil.ReadDir("pagina's") for _, file:= bereikbestanden ( if !file.IsDir() ( outData.Menu = append(outData.Menu, file.Name()) ) if pagina != "" && page == file.Name() ( fbody, _ := ioutil.ReadFile("pages" + "/" + file.Name()) outData.Pages = append(outData.Pages, string(fbody )) ) else if page == "" ( fbody, _ := ioutil.ReadFile("pages" + "/" + file.Name()) outData.Pages = append(outData.Pages, string(fbody)) ) ) rendered:= renderContent(outData) return c.HTMBLlob(http.StatusOK, gerenderd) ) func renderContent(input interface()) byte ( jsonInput, _ := json.Marshal(input) tmplEngine:= exec.Command("php ", "-f", "index.php") tmplEngine.Stdin = strings.NewReader(string(jsonInput)) weergegeven, _ := tmplEngine.Output() return weergegeven )


Nu starten we het programma via go run en doen we via elke browser een verzoek aan de pagina, bijvoorbeeld op deze manier:

Links2 http://localhost:8000

Het resultaat wordt gepresenteerd op KDPV.

Een nieuwsgierige lezer zal misschien merken dat we veel productiviteit verliezen door voor elk verzoek een PHP-proces te starten. Dit punt kan eenvoudig worden geoptimaliseerd met behulp van het mechanisme

In les 1 en 2 heb je al iets over PHP geleerd en een server opgezet (of er toegang toe gehad). Nu zijn we klaar om onze eerste PHP-pagina te maken. Het zal gemakkelijk en simpel zijn, maar na deze les weet je al veel meer over PHP.

Normaal gesproken is een PHP-bestand een tekstbestand met de extensie .php, bestaande uit:

  • Tekst
  • HTML-tags
  • PHP-scripts

Je bent al bekend met tekst- en HTML-tags. Laten we ons nu concentreren op PHP-scripts.

PHP-scripts

De PHP Documentation Group heeft gedetailleerde documentatie vrijgegeven. Er zijn in deze zelfstudie veel links naar deze documentatie. Het doel is om u de gewoonte te geven om naar antwoorden op uw vragen te zoeken. PHP is zo uitgebreid dat het niet in deze tutorial kan worden behandeld. Maar PHP is vrij eenvoudig! Bovendien lijkt de PHP-taal vaak behoorlijk op het reguliere Engels.

Laten we beginnen met het bouwen van uw eerste PHP-pagina.

Voorbeeld: Hallo wereld!

Laten we beginnen met het maken van een normaal HTML-document, maar laten we het bestand aanroepen pagina.php en plaats deze in de hoofdmap van de site. Als u XAMPP gebruikt (zie les 2), zal het pad naar het bestand op uw computer (die nu de server is) "c:\xampp\htdocs\page.php" zijn.

De HTML-code zou er ongeveer zo uit moeten zien:

Mijn eerste PHP-pagina

Zoals je je waarschijnlijk nog herinnert van de eerste les, PHP geeft opdrachten aan de server. Laten we dus een commando naar de server schrijven.

Eerst moeten we de server vertellen waar de PHP-code staat begint En eindigt. In PHP-tags En ?> worden gebruikt om het begin en einde van blokken PHP-code te markeren die de server moet uitvoeren (op de meeste servers is het voldoende om deze te gebruiken als starttag, maar zal correcter zijn de eerste keer dat u PHP gebruikt.)

Laten we nu proberen dit codeblok aan uw HTML-code toe te voegen:

Mijn eerste PHP-pagina Hallo wereld!"; ?>

Als je dit PHP-document in een browser bekijkt, ziet het er ongeveer zo uit:

Maar het zal interessant zijn om de HTML-code in de browser te bekijken (door "bron bekijken" te selecteren):

PHP-codes zijn verdwenen! Vanaf de eerste les onthoud je dat alleen de server PHP-codes kan zien - de client (browserprogramma) ziet alleen het resultaat!

Laten we kijken wat er gebeurt. We vragen de server om te schrijven

Hallo wereld!

. In meer technische termen gebruiken we de echo string-functie om een ​​gespecialiseerde string naar de client te schrijven, waarbij puntkomma's het einde van de opdracht aangeven. Maar maak je geen zorgen! In deze tutorial proberen we de technische terminologie tot een minimum te beperken.

Ons eerste voorbeeld is uiteraard niet erg indrukwekkend. Maar haast je niet! Nu zullen de dingen interessanter worden. Laten we naar een ander voorbeeld kijken.

Voorbeeld: Nu!

Laten we de server dwingen iets anders te schrijven. We kunnen het bijvoorbeeld vragen om de huidige datum en tijd uit te voeren:

Mijn eerste PHP-pagina

In de browser zullen we zien:

Relevante HTML-code:

Het wordt een beetje interessanter, nietwaar?

De server geeft de datum en tijd weer bij het weergeven van de PHP-pagina. Houd er rekening mee dat wanneer u de pagina in uw browser vernieuwt, de nieuwe tijd wordt weergegeven. De server geeft de huidige datum en tijd weer wanneer de pagina naar de client wordt verzonden.

Houd er ook rekening mee dat HTML alleen datum en tijd bevat, maar geen PHP-codes. Daarom is dit voorbeeld onafhankelijk van welke browser wordt gebruikt. In werkelijkheid wordt alle functionaliteit uitgevoerd server technologie en altijd werkt in alle browsers!

Maak een bestand met de naam hello.php en plaats het in de hoofdmap van uw webserver (DOCUMENT_ROOT) met de volgende inhoud:

Voorbeeld #1 Ons eerste PHP-script: hello.php



PHP-test


Hallo wereld

" ; ?>



Gebruik uw browser om toegang te krijgen tot het bestand met de URL van uw webserver, eindigend met /hallo.php bestandsreferentie. Bij lokale ontwikkeling zal deze URL er ongeveer zo uitzien http://localhost/hello.php of http://127.0.0.1/hallo.php maar dit is afhankelijk van de configuratie van de webserver. Als alles correct is geconfigureerd, wordt dit bestand door PHP geparseerd en wordt de volgende uitvoer naar uw browser verzonden:

PHP-test

Hallo wereld



Dit programma is uiterst eenvoudig en je had echt geen PHP nodig om een ​​pagina als deze te maken. Het enige wat het doet is weergeven: Hallo wereld met behulp van PHP echo stelling Houd er rekening mee dat het bestand hoeft niet uitvoerbaar te zijn of op welke manier dan ook bijzonder. De server komt erachter dat dit bestand door PHP moet worden geïnterpreteerd omdat je de extensie ".php" hebt gebruikt, die de server is geconfigureerd om door te geven aan PHP. Beschouw dit als een normaal HTML-bestand waarin toevallig een reeks speciale tags tot uw beschikking staan ​​die veel interessante dingen doen.

Als je dit voorbeeld hebt geprobeerd en er niets wordt uitgevoerd, er wordt gevraagd om te downloaden, of als je het hele bestand als tekst ziet, is de kans groot dat de server waarop je je bevindt PHP niet heeft ingeschakeld of niet goed is geconfigureerd.

Vraag uw beheerder om dit voor u in te schakelen via het hoofdstuk Installatie van de handleiding. Als u lokaal ontwikkelt, lees dan ook het installatiehoofdstuk om er zeker van te zijn dat alles goed is geconfigureerd. Zorg ervoor dat u via http toegang krijgt tot het bestand, terwijl de server u de uitvoer levert. Als u het bestand gewoon vanuit uw bestandssysteem oproept, wordt het niet door PHP geparseerd. Mochten de problemen toch aanhouden, aarzel dan niet om gebruik te maken van één van de vele mogelijkheden. Het doel van het voorbeeld is om het speciale PHP-tagformaat te tonen. ?> In dit voorbeeld hebben we gebruikt

om het begin van een PHP-tag aan te geven. Vervolgens plaatsen we de PHP-instructie en verlaten we de PHP-modus door de afsluitende tag toe te voegen,: . U kunt in een HTML-bestand als dit waar u maar wilt in en uit de PHP-modus springen. Lees voor meer details het handmatige gedeelte over de basis-PHP-syntaxis.

Opmerking ?> Een opmerking over regelfeeds ?> Regelfeeds hebben weinig betekenis in HTML, maar het is toch een goed idee om uw HTML er mooi en overzichtelijk uit te laten zien door regelfeeds in te voegen. Een linefeed die onmiddellijk volgt na een afsluiting

om het begin van een PHP-tag aan te geven. Vervolgens plaatsen we de PHP-instructie en verlaten we de PHP-modus door de afsluitende tag toe te voegen,: Een opmerking over teksteditors

Er zijn veel teksteditors en Integrated Development Environments (IDE's) die u kunt gebruiken om PHP-bestanden te maken, bewerken en beheren. Een gedeeltelijke lijst van deze tools wordt bijgehouden op »PHP Editors List. Als u een editor wilt aanbevelen, ga dan naar de bovenstaande pagina en vraag de paginabeheerder om de editor aan de lijst toe te voegen. Het kan nuttig zijn om een ​​editor met syntaxisaccentuering te hebben.

om het begin van een PHP-tag aan te geven. Vervolgens plaatsen we de PHP-instructie en verlaten we de PHP-modus door de afsluitende tag toe te voegen,: Een opmerking over tekstverwerkers

Tekstverwerkers zoals StarOffice Writer, Microsoft Word en Abiword zijn niet optimaal voor het bewerken van PHP-bestanden. Als u er een wilt gebruiken voor dit testscript, moet u ervoor zorgen dat u het bestand opslaat als platte tekst of PHP kan het script niet lezen en uitvoeren.

om het begin van een PHP-tag aan te geven. Vervolgens plaatsen we de PHP-instructie en verlaten we de PHP-modus door de afsluitende tag toe te voegen,: Een opmerking over Windows Kladblok

Als u uw PHP-scripts schrijft met Windows Kladblok, moet u ervoor zorgen dat uw bestanden worden opgeslagen met de .php-extensie.

(Kladblok voegt automatisch een .txt-extensie toe aan bestanden, tenzij u een van de volgende stappen uitvoert om dit te voorkomen.) Wanneer u het bestand opslaat en wordt gevraagd een naam voor het bestand op te geven, plaatst u de bestandsnaam tussen aanhalingstekens (bijvoorbeeld "hallo.php "). U kunt ook op het vervolgkeuzemenu "Tekstdocumenten" in het dialoogvenster "Opslaan" klikken en de instelling wijzigen in "Alle bestanden". Vervolgens kunt u uw bestandsnaam zonder aanhalingstekens invoeren. Nu je met succes een werkend PHP-script hebt gemaakt, is het tijd om het beroemdste PHP-script te maken! Bel naar de phpinfo()

functie en u zult veel nuttige informatie zien over uw systeem en configuratie, zoals beschikbare vooraf gedefinieerde variabelen, geladen PHP-modules en configuratie-instellingen. Neem even de tijd en bekijk deze belangrijke informatie.