In deze korte tutorial bekijken we de body-klasse van WordPress en hoe we deze kunnen manipuleren met behulp van core API-aanroepen.
In het bijzonder hebben we betrekking op het toevoegen van lichaamsklassen, het verwijderen van lichaamsklassen, het conditioneel toevoegen van lichaamsklassen en enkele gebruikscasussen.
De lichaam
class in WordPress is een klasse of een reeks klassen die wordt toegepast op het HTML-body-element. Dit is handig voor het toepassen van unieke stijlen op verschillende delen van een WordPress-site lichaam
klassen kunnen voorwaardelijk worden toegevoegd.
WordPress bevat een aantal standaardlichaamsklassen die in dit artikel worden behandeld.
Er zijn een paar methoden beschikbaar voor het toevoegen van nieuwe lichaamsklassen in WordPress. Deze tutorial gaat over het toevoegen van de body class binnen een thema (meestal gedefinieerd in header.php
) de ... gebruiken body_class
functie en klassen toevoegen met behulp van een filter.
Dit is een heel eenvoudige manier om lichaamsklassen toe te voegen en is vooral handig als u een thema maakt. De body class wordt normaal gesproken opgenomen in een thema met behulp van de volgende code:
>
Om hier je eigen klasse aan toe te voegen, kun je een argument aan de functie doorgeven, zoals:
>
Dit zou een body class van toevoegen mijn klas
op elke pagina van uw WordPress-site.
Er kunnen momenten zijn dat u meer dan één lichaamsklasse wilt toevoegen. Dit kan worden bereikt met behulp van een eenvoudige array:
>
Dit neemt alle klassen in de array en geeft ze door aan de body_class
functie.
Je kunt ook een body class conditioneel toevoegen. Dit is eenvoudig met een paar eenvoudige PHP. In dit voorbeeld wordt de voorwaardelijke methode WooCommerce van gebruikt is_shop ()
:
Opmerking: WooCommerce voegt al een klasse op basis hiervan toe, dus merk op dat dit slechts een voorbeeld is.
Wat de bovenstaande code aan het doen is, is controleren of de eerste functie waar is, als het waar is, dan heeft de lichaamsklasse dat wel is-woocommerce-shop
eraan toegevoegd; anders, als het niet waar is, wordt alleen de standaard bodyclass weergegeven.
Het is mogelijk om een WordPress-filter te gebruiken om ook een bodyklasse toe te voegen. Deze methode zorgt ervoor dat de themacode schoner blijft en is vooral handig als u een bodyklasse wilt toevoegen vanuit een plug-in. Deze code kan gaan in je thema's functions.php
of in je plug-in.
add_filter ('body_class', 'my_body_classes'); function my_body_classes ($ classes) $ classes [] = 'class-name'; return $ klassen;
Hiermee voegt u een klasse (of klassen, afhankelijk van uw implementatie) toe aan de array en retourneert deze.
Als u meer klassen aan het filter wilt toevoegen, voegt u gewoon een andere regel toe waarmee een andere waarde aan de array wordt toegevoegd:
add_filter ('body_class', 'my_body_classes'); function my_body_classes ($ classes) $ classes [] = 'class-name'; $ classes [] = 'class-name-two'; return $ klassen;
Condities kunnen ook in een filter worden gebruikt. Met hetzelfde voorbeeld dat we eerder hebben gebruikt, kunnen we hetzelfde effect bereiken:
add_filter ('body_class', 'my_body_classes'); function my_body_classes ($ classes) if (is_shop ()) $ classes [] = 'class-name'; $ classes [] = 'class-name-two'; retourneer $ klassen;
WordPress voegt standaard een bodyklasse toe voor uw paginasjabloon, maar als u een front-end ontwikkelaar bent en naamgevingsconventies hebt voor uw CSS, wilt u dit misschien wijzigen.
Als voorbeeld, een paginasjabloon met de naam "halfhalf" zou een body class van hebben pagina-template-page-halfhalf-php
- niet goed.
Dus laten we een nieuwe klasse toevoegen, met behulp van een filter en een voorwaardelijke tag van WordPress:
add_filter ('body_class', 'halfhalf_body_class'); function halfhalf_body_class ($ classes) if (is_page_template ('page-halfhalf.php')) $ classes [] = 'half-helft-pagina'; retourneer $ klassen;
Hiermee wordt de lichaamsklasse toegevoegd halfhalf-pagina
als de paginasjabloon is page-halfhalf.php
.
Het is onwaarschijnlijk dat u een body class wilt verwijderen, omdat u niet gedwongen bent om ze te gebruiken en zij voegen zeer weinig toe aan uw markup. Dat gezegd hebbende, is het mogelijk om dit met hetzelfde te doen body_class
filter.
add_filter ('body_class', 'adjust_body_class'); function adjust_body_class ($ classes) foreach ($ classes as $ key => $ value) if ($ value == 'woocommerce-page') unset ($ classes [$ key]); retourneer $ klassen;
Krediet: deze code is aangepast van dit artikel.
In dit voorbeeld doorlopen we de reeks klassenamen, waardoor de klassenaam wordt uitgeschakeld woocommerce-pagina
als het bestaat, en dan de klassen retourneert, minus die zijn verwijderd.
In deze kleine zelfstudie hebben we twee methoden behandeld om aan de body-klasse van WordPress toe te voegen:
body_class
functie binnen een thema,We hebben ook behandeld voor het conditioneel toevoegen van lichaamsklassen en het verwijderen van lessen, mocht dit ooit nodig zijn in de toekomstige ontwikkeling.