Hoe u een WordPress-sjabloon maakt, een WordPress-thema maakt. WordPress. Een paginasjabloon maken

Voordat een websitesjabloon in HTML / CSS wordt gecodeerd, moet deze worden uitgewerkt. Het is gebruikelijk om een ​​ontwerp in Photoshop te tekenen. De voltooide lay-out wordt opgeslagen in een bestand met het formaat .PSD.

Laten we als voorbeeld het site-ontwerp in de onderstaande afbeelding maken.

1. Open Photoshop en maak er een nieuw document in ( Bestand -> Nieuw of Ctrl + N).

2. We stellen de initiële parameters in. In de praktijk is het bijna onmogelijk om over een ontwerp na te denken met pixelnauwkeurigheid - tijdens het lay-outproces moet je zeker iets veranderen, verplaatsen, opnieuw doen. Daarom kunnen de afmetingen bij benadering worden ingesteld en is het raadzaam om de breedte en hoogte van het document duidelijk meer aan te geven dan de geplande grootte van de site, zodat alle elementen precies in de lay-out passen. We zullen ons document 1000 pixels breed en 1500 pixels hoog maken. Let op: pixels, geen centimeters. Andere parameters kunnen met rust worden gelaten.

3. We zetten de heersers aan. Tijdens het werk zijn ze nodig, omdat je met de linialen de afstanden heel nauwkeurig kunt meten. Controleer of je linialen hebt ingeschakeld. Als dat het geval is, ziet u links en onder de bovenste werkbalk schalen.

Als er geen linialen zijn, zet ze dan aan ( Bekijk -> Linialen of Ctrl + R).

De linialen moeten de waarde in pixels weergeven. Om er vanaf een andere lengtemaat naar over te schakelen, klikt u met de rechtermuisknop op de liniaal en vinkt u het overeenkomstige vakje aan in het menu dat wordt geopend.

4. Controleer of de lettergrootte is opgegeven in pixels en niet in punten. Indien niet correct geconfigureerd, ga naar Bewerken -> Instellingen -> Algemeen, ga in het venster dat verschijnt naar het tabblad Maateenheden en linialen, in de vervolgkeuzelijst Tekst Kiezen Pixels en druk op Oke.

5. Maak meteen de achtergrond van de site. We hebben deze verloopvulling oranje, die in geel verandert. Selecteer in het linkerdeelvenster de tool verloop.

Druk op het paneel dat bovenaan verschijnt op de knop Spiegel verloop, kies een kleur in het palet aan de linkerkant.

De hulpmiddelen van het geopende venster gebruiken Verloopbewerker, kies de gewenste kleuren. Om de exacte kleur van het controlepunt in te stellen, klik erop, druk op de knop Kleur en specificeer het in het kleurenkiezervenster in RGB, HSB, CSS of een ander beschikbaar formaat.

Als resultaat van de manipulaties is het verloop als volgt geworden.

Om een ​​verloop op de huidige laag toe te passen, sleept u de aanwijzer erover terwijl u de linkermuisknop ingedrukt houdt.

6. Sla de achtergrond op in een bestand. Wat we hebben gedaan, moet onder de hoofdpagina worden weergegeven en het hele browservenster beslaan - een soort achtergrond. Een site is bijvoorbeeld 800 pixels breed en de schermresolutie van de gebruiker is veel hoger. De rest van de ruimte (alles behalve de 800px die zal worden ingenomen door het paginablok) wordt gevuld met een verloopachtergrond.

Omdat de schermresolutie niet kan worden voorspeld, kun je een strook van één pixel dik uit de gemaakte achtergrond knippen en opslaan als afbeelding. De browser zal de achtergrond er over de gehele breedte mee vullen.

6.1. Een hulpmiddel kiezen Rechthoekig gebied.

6.2. Selecteer een strook van willekeurige breedte, maar over de gehele lengte van de laag.

6.3. Kopieer de selectie ( Ctrl + C).

6.4. Maak een nieuw document ( Ctrl + N), stel de breedte in op 1 pixel en plak de gekopieerde ( Ctrl + V).

6.5. Sla het bestand op in Jpg-formaat.

7. Maak de achtergrond van de pagina. De achtergrond zal effen wit zijn. Een hulpmiddel kiezen Rechthoek en stel de vereiste parameters in het eigenschappenvenster in. We hebben een rechthoek van 800x1100 pixels, waarvan de linkerbovenhoek op punt 100.0 ligt.

8. Maak de achtergrond van de koptekst. Matachtige verloopvulling met afmetingen 780x80px.

Sla het op als een apart 1 pixel breed grafisch bestand, zoals we deden met de achtergrond.

9. Maak het hoofdmenu aan. Gebruik de tool Horizontale tekst om het eerste menu-item aan de lay-out toe te voegen - huis... De laag wordt automatisch aangemaakt en zelfs hernoemd, u hoeft er dus niets mee te doen.

Het is hierbij belangrijk dat alle punten gelijkmatig verdeeld zijn, daarom wordt het gebruik van linialen ten zeerste aanbevolen. Om een ​​verticaal uit te breiden, sleept u terwijl u de muisknop ingedrukt houdt van links naar rechts. Gebruik de linialen om de afstand te meten, aangezien elk menu-item in ons geval 120 pixels moet beslaan.

10. Voeg op dezelfde manier de rest van de menu-items in.

11. Voeg een logo toe. We hebben al een kant-en-klaar exemplaar, dus het enige dat overblijft is om het zorgvuldig in de lay-out in te voegen. Klik hiervoor op Bestand -> Openen, klik vervolgens op de afbeelding en verplaats deze, terwijl u de muisknop ingedrukt houdt, naar de titel van het sjabloondocument. Wanneer deze wordt geopend, sleept u de afbeelding naar de gewenste locatie in de lay-out en laat u de muisknop los.

12. We schrijven de naam en slogan van de site. Met de tool die we al kennen, vullen we het bijna gemaakte logo aan met opschriften.

13. Ga naar het zijpaneel. Laten we eerst een verloopvulling voor de titels maken en opslaan in een apart bestand. Je bent bekend met de tools, geen uitleg nodig.

14. Voeg de titeltekst van het informatieblok toe aan het nieuw gemaakte verloop.

15. Teken een rand voor het gebied. Om dit te doen, volstaat het om een ​​transparante rechthoek met zwarte omtreklijnen te gebruiken. Selecteer het gereedschap Rechthoek, stel het vultype van de vorm in op Geen kleur, klik op het pictogram Lijntype instellen en selecteer zwart, anders zijn er geen lijnen. Als de omtreklijn te dik is, stelt u de lijndikte in op 0,5 pt.

16. Voeg hieronder een blokkop toe met een verloopvulling, zoals in items 12-13.

17. Maak het menublok in het linkerdeelvenster. Voeg een oranje rechthoek van 100 px toe met een gele omtreklijn van 0,2 pt.

18. Voeg er tekst aan toe.

19. Maak met behulp van het dupliceren van lagen en linialen nog vijf menu-items van het linkerdeelvenster.

20. Schrijf de tekst in het hoofdgedeelte van de pagina met dezelfde tool.

21. Voeg een foto toe aan het hoofdgedeelte van de pagina, zoals we hebben gedaan met het logo. Om een ​​afbeelding te kopiëren, verplaatst u deze eenvoudig met de muis terwijl u de toets ingedrukt houdt. Alt... Als de afbeelding plotseling niet meer in grootte past, gebruik dan het gereedschap Transformeren ( Ctrl + T).

22. Teken de achtergrond van de voettekst van de site - een oranje verloop van 64 px.

23. Sla de 1 pixel brede strook van de onderste achtergrond op in een apart grafisch bestand.

24. Verlaag de hoogte van de pagina. Het bleek dat alle elementen al getekend waren en dat er nog extra ruimte over was. Dit is waar betekenisvolle laagnamen van pas kwamen. Selecteer onder andere de achtergrondlaag (we noemen het de achtergrond) en gebruik het gereedschap Transformeren om de hoogte van onze witte rechthoek te verkleinen tot de onderkant van de paginavoettekst.

25. Sla de sjabloon op in een bestandsindeling .PSD (Bestand -> Opslaan).

26. Het resultaat van deze actie is nog steeds een eenvoudige, maar toch al normaal ogende sitesjabloon.

Nu, van de PSD-lay-out, blijft het gebruik van HTML / CSS om de websitesjabloon te maken, maar hier zal ik het in het volgende artikel over hebben.

In dit artikel zal ik je door de manieren leiden om sjablonen te maken voor permanente WordPress-pagina's. Elke methode heeft voor- en nadelen. Maar voordat u begint, laten we het even hebben over wat pagina's zijn en hoe ze verschillen van berichten.

In WordPress kun je pagina's (pagina) en berichten (post) maken. Ze verschillen doordat de records: in de feed op de hoofdpagina komen; voor inzendingen zijn categorieën aangegeven; records mogen geen boomstructuur zijn, en pagina's: worden gebruikt voor inhoud als "Over mij", "Contacten", "Sitemap"; hebben geen categorieën, maar een boomstructuur. Ingangen zijn meestal bedoeld voor chronologische informatie (op tijdstip van toevoeging), en pagina's voor een boomstructuur zijn niet tijdsafhankelijk. Dit artikel wordt bijvoorbeeld gepubliceerd als een "invoer" onder de kop "Code", en links in het kopmenu leiden naar de volgende pagina's: Functies.

Pagina's zijn als berichten - ze bevinden zich in dezelfde databasetabel en hebben bijna dezelfde gegevens: titel, tekst, extra velden, enz. Beide zijn records, maar van verschillende typen: de pagina's zijn boomachtig en zijn georganiseerd door bovenliggende en onderliggende pagina's te maken, en de records worden gecombineerd door koppen en tags. In WordPress kun je extra berichttypen maken, boomachtig of niet.

Pagina's maken in WordPress

Vaak moet u een aparte paginasjabloon maken om informatie anders weer te geven dan op andere pagina's. Bij het maken van een paginasjabloon in WordPress, kunt u de pagina volledig wijzigen: verwijder de zijbalk, voettekst, koptekst, u kunt de pagina onherkenbaar wijzigen. Op deze site wordt bijvoorbeeld de pagina gewijzigd waarop de WordPress-bestandscodes worden weergegeven.

Methode 1: een paginasjabloon via een bestand met een willekeurige naam en deze verbinden in het admin-paneel (klassieke manier)

Dit is de meest gebruikelijke manier om een ​​paginasjabloon te maken in WordPress. Om dit te doen, moet u een .php-bestand maken, bijvoorbeeld tpl_my-page.php in de themamap en helemaal aan het begin van het bestand noteren dat het gemaakte bestand een sjabloon voor pagina's is:

Wanneer we nu een pagina maken in het beheerderspaneel in het blok "Pagina-eigenschappen", kunnen we een "sjabloon" selecteren:

Sinds WordPress 4.7. u kunt dergelijke paginasjablonen voor elk berichttype maken, niet alleen voor pagina's. Vul hiervoor de opmerkingen aan met de regel: Sjabloon Berichttype: bericht, pagina, waarbij bericht, pagina de namen zijn van de berichttypes waartoe het sjabloon behoort.

/ * Sjabloonnaam: Mijn sjabloonpagina Sjabloonberichttype: bericht, pagina, product * /

Voordelen:

    Nadat we één sjabloon hebben gemaakt, kunnen we deze gemakkelijk op verschillende pagina's toepassen. U kunt bijvoorbeeld een sjabloon maken zonder zijbalk en deze op verschillende pagina's gebruiken.

  • Alleen records met het opgegeven sjabloon kunnen worden opgehaald. U kunt bijvoorbeeld alle pagina's weergeven met het sjabloon "Services" (bestand servises.php). Dit is soms handig. De naam van het sjabloonbestand wordt opgeslagen in het metaveld _wp_page_template, dus om pagina's met de opgegeven sjabloon weer te geven, moet u een query maken via het metaveld (zie WP_Query).

nadelen:

Nadat u het sjabloonbestand in de themamap hebt gemaakt, moet u naar het beheerderspaneel gaan en het sjabloon voor de pagina installeren. Dit is niet altijd handig bij het ontwikkelen. Gebruik daarom de tweede methode als u van plan bent de sjabloon voor slechts één pagina te gebruiken.

Hoe het werkt:

Wanneer je naar het admin-paneel op de pagina gaat om een ​​boom-achtige post te bewerken, scant WordPress alle sjabloonbestanden voor de regel:

Sjabloonnaam: ***

De regel kan overal en op elke manier in het bestand worden geplaatst.

Alle bestanden met vergelijkbare regels worden verzameld en weergegeven in de sjabloonselectie in het blok "Paginakenmerken".

Wanneer de pagina wordt gepubliceerd, wordt de naam van het sjabloonbestand of standaard geschreven in het aangepaste veld _wp_page_template als de sjabloon niet is opgegeven:

Wp_page_template = standaard
_wp_page_template = tpl_my-page.php

Vervolgens, wanneer de gebruiker de pagina bezoekt, zal WordPress het metaveld _wp_page_template controleren. Als de sjabloon is geïnstalleerd, wordt het sjabloonbestand gebruikt. Anders gaat het zoeken naar de paginasjabloon door de hiërarchie.

Methode 2: paginasjabloon door een bestand met een specifieke naam (sjabloonbestandshiërarchie)

Wanneer een pagina wordt gemaakt, wordt er een snelkoppeling voor ingesteld (slug, alternatieve naam). Het wordt gebruikt in de url-pagina. En het kan worden gewijzigd:


Om op deze manier een sjabloon te maken, moet u de pagina-slug weten en een bestand in de themamap maken. Laten we zeggen dat onze slug gelijk is aan contacten zoals op de afbeelding, dan zullen we een page-contacts.php-bestand in het thema maken. en vul het met de benodigde code (je kunt de inhoud van het page.php sjabloonbestand kopiëren en voor jezelf bewerken). Dat is het, als we nu de pagina bezoeken, zouden we een nieuwe sjabloon moeten zien. Op dezelfde manier kun je de ID (laat het 12 zijn) van de pagina nemen en een bestand maken page-12.php.

Voordelen:

Het is niet nodig om naar het beheerderspaneel te gaan en het sjabloonbestand te installeren. De sjabloon begint onmiddellijk te werken nadat het bestand is gemaakt. Handig bij het ontwikkelen.

nadelen:

De sjabloon wordt alleen voor één specifieke pagina gemaakt. Afhankelijk van de pagina-slug, als deze verandert, zal de sjabloon niet werken. Gebruik je ID, dan verdwijnt de afhankelijkheid van de slug, maar wordt in het themabestand onduidelijk tot welke pagina de template behoort (als er meerdere templates met ID zijn).

Praktisch nutteloos bij het schrijven van sjablonen, en nog meer plug-ins. Het kan worden gebruikt bij het bewerken van uw site waarvan de slug of pagina-ID van tevoren bekend is.

Hoe het werkt:

WordPeress kiest welk bestand in de volgende volgorde moet worden gebruikt (bestanden moeten in de hoofdmap van het thema staan):

  • (any_name) .php (bij gebruik van een paginasjabloon)
  • pagina- (post_slug) .php
  • pagina- (record_id) .php
  • pagina.php
  • enkelvoud.php
  • index.php

Methode 3: paginasjabloon via het filter "template_include" (codering)

Dit is een geavanceerde methode, het is complexer, maar samen met de complexiteit opent het brede mogelijkheden. Met deze methode kunt u een sjabloon instellen voor elke pagina, elk bericht, elke categorie, elke publicatie op de site of in het algemeen voor een groep publicaties. Zie voorbeelden met beschrijving:

// het filter geeft de $ template-variabele door - het pad naar het sjabloonbestand. // Door dit pad te wijzigen, veranderen we het sjabloonbestand. add_filter ("template_include", "my_template"); functie my_template ($ sjabloon) (# analoog van de tweede methode // als dit een pagina is met een portfolio-slug, gebruik dan het page-portfolio.php sjabloonbestand // gebruik de voorwaardelijke tag is_page () als (is_page ("portfolio") )) (if ($ new_template = location_template (array ("page-portfolio.php"))) return $ new_template;) # sjabloon voor een categoriegroep // dit voorbeeld gebruikt een bestand uit de themamap tpl_special-cats.php , // als sjabloon voor categorieën met ID 9 , de naam "Uncategorized" en de slug "php" if (is_category (array (9, "Uncategorized", "php"))) (retourneer get_stylesheet_directory (). "/tpl_special -cats.php";) # sjabloon voor schrijven op ID // het sjabloonbestand bevindt zich in de plug-inmap /my-plugin/site-template.php global $ post; if ($ post-> ID == 12) ( return wp_normalize_path (WP_PLUGIN_DIR). "/ my-plugin / site-template.php ";) # template voor pagina's van willekeurig type" book "// er wordt aangenomen dat het sjabloonbestand book-tpl.php zich in de themamap global bevindt $ post; if ($ post-> post_type ==" boek ") (retour get_stylesheet_ map (). "/boek-tpl.php"; ) retour $ sjabloon; )

Dergelijke code moet in het functies.php-bestand van het thema of in een plug-in worden geplaatst, of op een andere manier worden aangesloten. Zoals je in het voorbeeld kunt zien, werken voorwaardelijke tags tijdens het filter template_include al, zijn globale variabelen ingesteld: $ wp_query, $ post, etc.

Voordelen:

    U kunt een sjabloon instellen voor elke pagina of groep pagina's. Bijna volledige carte blanche in actie.

  • Het is mogelijk om een ​​sjabloon te maken bij het schrijven van een plug-in.

nadelen:

De noodzaak om code te schrijven en deze afzonderlijk te verbinden (bijvoorbeeld in de functies.php van het thema).

Nu zal ik uitleggen hoe je een WordPress-thema kunt maken van een eenvoudige HTML-sjabloon met behulp van het ontwerpvoorbeeld uit dat artikel.

Het kan zijn dat u het ontwerp voor WordPress om vele redenen moet aanpassen, bijvoorbeeld als u uw eens statische site overzet naar een CMS, of u houdt van een ontwerp dat nog niet in de WordPress-collectie zit, of u wilt gewoon weten hoe de thema's van dit CMS werken van binnenuit.

Dus laten we beginnen.

De code naar bestanden distribueren

1. Download de sjabloon en pak deze uit in uw map met WordPress-thema's (adres zoals wordpress_blog_address / wp-content / thema's /). Hernoem de themamap naar wens als je wilt. Mijn sjabloon bevindt zich bijvoorbeeld op wordpress_blog_address / wp-content / thema's / MijnThema /.

2. Hernoem het bestand stijlen.css v style.css.

3. Openen style.css in een code-editor (zoals Notepad ++) en plak helemaal aan het begin de volgende regels:

/ * Themanaam: MyTheme Theme URI: http://test1.ru Auteur: NoName Auteur URI: http://test1.ru Beschrijving: Voorbeeld van testversie: 1.0.0 Licentie: GNU General Public License v2 of later Licentie-URI : http://www.gnu.org/licenses/gpl-2.0.html * /

Zoals je misschien al geraden had, is dit service-informatie over het ontwerpthema: titel, auteur, beschrijving, licentie, versie, enz. Je kunt de juiste delen van de regels vervangen door die van jezelf, dat wil zeggen, stel je eigen auteurschap, versie, beschrijving en andere gegevens.

4. Bestanden maken header.php, index.php, zijbalk.php, footer.php en distribueer de code van index.html.

4.1. V header.php kopieer de code regel voor regel aangezien dit bestand verantwoordelijk is voor de bovenkant van de site. stijlen.css vervang in de code door style.css- nieuwe geldige bestandsnaam.

4.2. V index.php plak de code van het hoofdblok (van de regel per regel ).

4.3. V zijbalk.php kopieer de zijmenucode (van Aan ).

4.4. V footer.php plak de resterende regels (met naar het einde van het document index.html).

5. Verwijderen index.html.

6. Ga naar het beheerderspaneel en zorg ervoor dat de MyTheme-sjabloon in de sectie verschijnt Uiterlijk -> Thema's... Je kunt het zelfs proberen te bekijken of te activeren, maar er komt nog niets goeds van, omdat we de sjabloon nog niet met WordPress hebben geïntegreerd.

Koptekst aanpassen

Nu gaan we uit van een statische sjabloon om een ​​dynamisch thema te maken, waarin de gegevens en WordPress-instellingen worden geladen.

Er zullen PHP-inserts in de sjabloon zijn. Deze code begint met... Tussen hen is de PHP-code die meestal CMS-functies aanroept.

1. Open het header.php-bestand en vervang de code die erin zit vóór het blok

naar de volgende:

> "> "> "type =" tekst / css "media =" scherm "/> <?php bloginfo("name"); ?>

We hebben het blok dynamisch gemaakt

De code roept een functie aan die de taalkenmerken terugstuurt naar de container.

">

In plaats van de codering als een constante te schrijven, hebben we een functie aangeroepen die de waarde uit de CMS-instellingen haalt en deze automatisch in de code vervangt, dat wil zeggen, om de codering te wijzigen, hoeft u het themabestand niet langer te bewerken.

Een belangrijke functie om de pagina te laten werken met stijlen, plug-ins en scripts.

2. Ga naar het bestand index.php bewerken. Schrijf in het begin

,

De regels roepen de kop-, zijbalk- en onderste bestanden van de site op.

Je kunt nu MyTheme bekijken of zelfs activeren. Als gevolg hiervan zal de browser het al bekende sjabloon weergeven met een statisch menu en een enkele pagina. Om het menu dynamisch en aanpasbaar te maken, en in plaats van op één pagina alle materialen op de site weer te geven, moet je de sjabloon verder transformeren.

Het hoofdmenu dynamisch maken

Tot nu toe hebben we een volledig statisch ontwerpthema, inclusief een met een ongewijzigd horizontaal hoofdmenu. Hoewel het niet kan worden geconfigureerd vanuit het beheerderspaneel en als u de code laat zoals het is, moet u het bestand elke keer bewerken om items in te voegen / te verwijderen / te verplaatsen header.php, wat erg onhandig is.

Om niet sluw te filosoferen en niet in de afgrond van de fascinerende programmeerwereld te duiken, zullen we het dynamische menu een statische naam geven. Plak de code in plaats van de horizontale menutabel

zodat je het volgende krijgt: