Căutați o modalitate de a adăuga o clasă personalizată pentru corp (body class) pentru pagini specifice? Deși probabil există un plugin pentru asta, am creat un fragment de cod rapid pe care îl puteți folosi pentru a adăuga o clasă personalizată pentru corp pentru pagini specifice în WordPress.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
add_filter( 'body_class', 'my_neat_body_class');
function my_neat_body_class( $classes ) {
if ( is_page(7) || is_category(5) || is_tag('neat') )
$classes[] = 'neat-stuff';
return $classes;
}
Adăugați acest fragment de cod în fișierul header.php al temei dvs. WordPress pentru a înlocui tag-ul HTML implicit pentru corp.
<body <?php body_class(); ?>>
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare citirea altor articole de pe site, cum ar fi: 27 cele mai bune teme WordPress pentru afaceri și 7 cele mai bune plugin-uri WordPress GDPR.
Este posibil ceva similar, dar pentru un #id? Nu vreau clasa .id
Ați putea folosi în continuare clasa .page-id: https://developer.wordpress.org/reference/functions/body_class/
Acestea fiind spuse, pentru ID-uri reale, ați putea adăuga un ID în fișierul șablon în sine și ați putea folosi condiționale pentru a controla când este afișat.
Excelent! M-a ajutat foarte mult.
Unde pot adăuga clasa după ce pașii de mai sus sunt finalizați?
Schimbați clasa din codul „neat-stuff” cu orice doriți. Ați putea chiar adăuga
mai multe clase dacă este necesar.
Vreau un ID / clasă diferit pentru fiecare pagină… cum îl atribui unei pagini specifice?
Acest fragment nu este ceea ce aveți nevoie, va adăuga doar o singură clasă la
„is_page(7) || is_category(5) || is_tag(‘neat’)”
O pagină cu ID-ul 7 sau categoria 5 sau o pagină care are eticheta neat. Cred că ceea ce s-ar potrivi mai bine nevoilor dvs. este următorul.
http://wpsnipp.com/index.php/functions-php/add-parent-page-slug-to-body_class/
Acest lucru va adăuga slug-ul paginii ca clasă pentru pagină, cu un prefix de parent-{page_slug}. Pe lângă adăugarea acestui fragment în functions.php, nu mai este necesar nimic altceva. Aruncați o privire și la acest rezultat al căutării pentru mai multe fragmente legate de body_class http://wpsnipp.com/?s=body_class
Sunt sigur că puteți găsi câteva utile.
Mulțumesc!
Funcționează impecabil pentru mine, treabă bună!
Mulțumesc mult pentru asta, apreciez cu adevărat!
Mulțumesc pentru asta, doream un nume de clasă de corp mai scurt pentru un șablon de pagină personalizat, folosind is_page_template (‘template-name.php’) și acest lucru a funcționat perfect.
Acest lucru poate fi combinat cu celălalt fragment de clasă de corp, astfel încât, dacă paginile nu sunt specificate, acestea să aibă implicit propria pagină ca clasă?
Ar trebui să puteți face pur și simplu
if ( is_page(7) || is_category(5) || is_tag(‘neat’) ){
$classes[] = ‘neat-stuff’; }else{
$classes[] = ‘other-class’;
}
Există ceva ce trebuie să faceți după ce adăugați clasa? Nu văd nicio modalitate de a adăuga o clasă personalizată pentru o pagină…
Salut Trevor,
Da, va trebui să adăugați funcția body_class() în interiorul tag-ului body. Am actualizat fragmentul pentru a evita confuzia.
Foarte util. Se poate face ceva similar folosind părintele paginii?
Sigur ai putea face ceva de genul, însă dacă paginile tale au doar un singur părinte, body_class va adăuga deja clasa „page-parent” la body. Aceasta este o problemă doar dacă ai multe pagini copil, deoarece fiecare pagină secundară poate fi și ea o pagină părinte. Ce încerci să faci?
Acum, acesta este un fragment foarte îngrijit pentru layout-uri de pagină personalizate – grozav!
Super, mă bucur că îți place!