Ieri am primit un email de la o cititoare, in care imi pune urmatoarea intrebare:
Salut!Ma poti ajuta, te rog, cu o chestie: cum dau enable la descrierea unei categorii dintr-un menu??Toate cele bune!
Raspunsul meu rapid a fost: depinde de tema!
Inainte de a-ti da si tie raspunsul complet, o sa trec mai intai pe la o categorie ca sa stii despre ce vorbesc.

- Din meniul WordPress aleg Categories (Categorii)
- Editez o categorie, in cazul meu Blog
- Inserez textul in Description
- Ma uit in site si nu se afiseaza nimic 🙁
- Ce am gresit?
In general, temele WordPress nu afiseaza descrierea categoriei, iar pentru asta trebuie sa scrii putin cod in pagina archive.php (daca exista in tema ta) sau sa creezi o functie si sa adaugi o actiune pe pozitia dorita de tine. Scrie functia in functions.php, salveaza si vezi ce-a iesit. Generic, o functie se adauga unei actiuni astfel:
function denumire_functie() {
echo 'afiseaza ceva';
}
add_action('hook','denumire_functie');
In limbaj WordPress, pozitia la care ma refer se numeste hook, iar o pagina poate fi personalizata prin adaugarea unei action (actiuni). Astfel nu este necesar sa modifici fisierele temei.
Mai jos am scris o functie de afisare descriere categorie category_description, pentru orice categorie $category-id. Actiunea ruleaza inainte de afisarea articolelor loop_start.
function display_category_description () {
if (is_category() ) {
echo '<div class="cat-desc">'.category_description( $category-id ).'</div>';
}}
add_action( 'loop_start', 'display_category_description');
Atentie la scris cod! Daca scrii functia din Appearance->Editor si gresesti ceva, crapa site-ul. Se rezolva rapid daca editezi fisierul direct de pe server si modifici sau stergi ce ai scris. Acest fisier poate fi gasit in /wp-content/themes/tema-ta/functions.php. Nu uita sa salvezi!
Si uite cum am scris aceeasi functie pentru tema Genesis:
function display_category_description () {
if (is_category() ) {
echo '<div class="cat-desc">'.category_description( $category-id ).'</div>'; }}
add_action( 'genesis_before_loop', 'display_category_description');
Cam asta a iesit in pagina, dupa ce am inserat descrierea in categoria Blog. Da click sa maresti imaginile.


Diferenta dintre cele doua actiuni, consta in pozitionarea textului in tema: in Genesis pozitia este genesis_before_loop, iar in tema standard pozitia este loop_start.
Temele bazate pe un framework, cum este si Genesis, au alte pozitii decat cele implicite si e bine sa ai documentatie pentru a le afla.
Daca ai observat, in functie am adaugat un div de clasa cat-desc pentru ca sa pot aplica stil elementelor descrierii categoriei. Stilul CSS se scrie in fisierul style.css din tema ta. Ca sa vezi diferenta am aplicat si eu putin stil CSS:
div.cat-desc {
background-color: #eeeeee;
border: 1px solid #cccccc;
margin-bottom: 2rem;
padding: 15px 5px 5px;
}
Descrierea categoriei arata acum altfel:

Daca ai intrebari, scrie-mi si iti raspund cat pot de repede. Daca ti-a placut si te-a ajutat acest articol, distribuie-l ca sa-i ajuti si pe altii.