Din experiența noastră, dacă adăugați multe categorii la postările dvs. WordPress, lucrurile pot începe să pară puțin aglomerate. Mai multe categorii, în special categorii părinte și copil, pot aglomera aspectele dvs. și pot face mai dificil pentru cititori să găsească ceea ce caută.
Nu ar fi mai curat să afișați doar categoria copil pentru fiecare postare?
Acest ghid vă va arăta cum să ajustați fișierul temei dvs. WordPress pentru a afișa doar categoriile copil în bucla de postări, oferind blogului dvs. un aspect mai simplificat și mai ușor de utilizat.

De ce să afișați doar categoria secundară în bucla postărilor WordPress?
Când creezi un blog WordPress, poți să-ți organizezi conținutul folosind categoriile și etichetele.
Pentru a ajuta cititorii să găsească mai rapid conținut interesant, puteți chiar crea categorii copil (sau subcategorii).
De exemplu, dacă aveți un blog de călătorii, atunci ați putea crea o categorie „Destinații” și apoi categorii secundare precum „Europa”, „America” și „Australia”.
În mod implicit, majoritatea temelor WordPress afișează toate categoriile părinte și copil pentru o postare.

Cu toate acestea, dacă folosiți multe categorii, paginile blogului dvs. pot începe să pară dezordonate și complicate. De asemenea, poate fi mai dificil pentru cititori să găsească categoria de care sunt interesați.
Din acest motiv, s-ar putea să vrei să ascunzi categoriile părinte generice ale unei postări și să afișezi doar categoriile copil. Acestea fiind spuse, să vedem cum poți afișa doar categoriile copil în bucla de postări WordPress.
Înainte de a edita un fișier de temă WordPress: Puncte cheie de reținut
Acest ghid se adresează persoanelor care se simt confortabil cu codarea și editarea fișierelor de teme WordPress. Iată câteva lucruri pe care ar trebui să le faceți înainte de a urma tutorialul:
- Mai întâi, trebuie să conectați site-ul dvs. cu FTP sau să deschideți managerul de fișiere al gazdei dvs. web pentru a putea accesa acele fișiere.
- Dacă sunteți începător, atunci puteți consulta ghidul nostru pentru începători despre cum să copiați fragmente de pe web în WordPress pentru a vă pregăti din timp.
- Vă recomandăm să creați o copie de rezervă sau să utilizați un site de staging pentru a urma această metodă. Astfel, dacă ceva nu merge bine, site-ul dvs. live nu va fi afectat.
În cele din urmă, acest ghid este aplicabil doar temelor WordPress clasice. Teme de bloc au o structură diferită pentru fișierele temei.
Afișarea doar a categoriei copil în bucla de postări WordPress
În acest tutorial, vă vom arăta cum să editați fișierul temei dvs. folosind managerul de fișiere Bluehost. Dar, indiferent de furnizorul dvs. de găzduire, pașii ar trebui să fie similari.
Mai întâi, conectați-vă la tabloul de bord Bluehost și navigați la secțiunea „Site-uri”. Apoi, faceți clic pe „Setări” pentru site-ul pe care doriți să-l editați.

Apoi, derulați în jos la secțiunea Linkuri rapide.
Apoi, dă clic pe butonul „Manager fișiere”.

Aceasta va deschide managerul de fișiere.
Acum, va trebui să găsiți codul din fișierul temei dvs. care este responsabil pentru afișarea categoriilor. Puteți începe acest lucru accesând folderul public_html al site-ului dvs. » wp-content » themes » folderul temei dvs. curente.
În această etapă, s-ar putea să fie necesar să deschideți fiecare fișier și folder unul câte unul pentru a găsi fișierul corect de editat. Un lucru pe care îl puteți face este să încercați să găsiți coduri legate de categorii, cum ar fi has_category sau get_the_category_list. Dacă le localizați, atunci ar trebui să fiți în fișierul corect.
Dacă nu puteți găsi fișierul șablonului corect, consultați fișa noastră ierarhie șabloane WordPress și ghidul nostru despre cum să găsești fișierul temei corect pentru a-l edita.
Dacă utilizați tema Twenty Twenty-One, fișierul pe care ar trebui să-l căutați este fișierul template-tags din folderul „inc”. Odată ce l-ați găsit, puteți face clic dreapta pe fișier și selectați „Editare”.

În fișier, acesta este fragmentul responsabil pentru afișarea categoriilor și etichetelor:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
$categories_list = get_the_category_list( wp_get_list_item_separator() );
if ( $categories_list ) {
printf(
/* translators: %s: List of categories. */
'<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
$categories_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );
if ( $tags_list && ! is_wp_error( $tags_list ) ) {
printf(
/* translators: %s: List of tags. */
'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
echo '</div>';
}
} else {
Acum că ați găsit codul corect, puteți înlocui întregul fragment cu acesta:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
// Get the list of categories
$categories = get_the_category();
$child_cat_IDs = array(); // Array to store child category IDs
$parent_cat_IDs = array(); // Array to store parent category IDs
foreach ( $categories as $category ) {
if ( $category->parent > 0 ) {
$child_cat_IDs[] = $category->term_id; // Store the child category ID
} else {
$parent_cat_IDs[] = $category->term_id; // Store the parent category ID
}
}
// Output child categories if there are any
if ( !empty($child_cat_IDs) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
foreach ( $child_cat_IDs as $cat_id ) {
$cat_link = get_category_link($cat_id);
$cat_name = get_cat_name($cat_id);
$output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
}
$output .= '</span>'; // Close the span tag after the loop
echo $output; // Output the child category links
// Output parent categories if there are no child categories
} elseif ( !empty($parent_cat_IDs) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
foreach ( $parent_cat_IDs as $cat_id ) {
$cat_link = get_category_link($cat_id);
$cat_name = get_cat_name($cat_id);
$output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
}
$output .= '</span>'; // Close the span tag after the loop
echo $output; // Output the parent category links
}
// Handle tags
$tags_list = get_the_tag_list('', wp_get_list_item_separator());
if ( $tags_list && ! is_wp_error( $tags_list ) ) {
printf(
/* translators: %s: List of tags. */
'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
echo '</div>'; // Close post-taxonomies div
}
} else {
Acest fragment de cod identifică mai întâi toate categoriile atribuite postării. Apoi, verifică dacă fiecare categorie are un părinte.
Dacă o face, înseamnă că este o categorie copil și este adăugată la lista de afișare. Categoriile părinte sunt omise, rezultând o afișare mai curată și mai specifică a clasificării postării dvs.
Iată cum ar trebui să arate după ce înlocuiți codul:

Când ați terminat, salvați modificările.
Acum, trebuie să vizitați o postare care are una sau mai multe categorii copil. Veți vedea că categoria părinte este ascunsă, iar WordPress afișează acum doar categoriile copil.

Sperăm că acest articol v-a ajutat să învățați cum să afișați doar categoria copil în postările dvs. WordPress. În continuare, poate doriți să consultați articolul nostru despre cum să stilizați diferit categoriile individuale în WordPress și ghidul nostru pentru începători despre cum să căutați după categorie în WordPress.
Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Mike
Am rezolvat!
foreach((get_the_category()) as $childcat) { $parentcat = $childcat->category_parent; if (cat_is_ancestor_of(10, $childcat)) { echo get_cat_name($parentcat); } }
MIke
Am trei categorii principale și acest cod funcționează cu succes în bucla mea de pagină unică pentru a afișa numele categoriei selectate. Acum vreau să afișez părintele categoriei. Complicația este că am două niveluri sub categoria principală (3 niveluri) și vreau să afișez părintele de la un nivel, nu părintele de la nivelul superior. Pare ușor să afișezi părintele superior, dar nu am văzut niciun cod pentru a returna categoria de nivel copil a unei categorii nepoate?
amnachohan
Va funcționa în afara buclei?
Marian Rick
Acesta este un cod excelent. Mulțumesc mult până acum!
Pentru unul dintre proiectele mele, trebuie să merg mai departe și să afișez doar cea mai joasă subcategorie. Deci pot exista trei niveluri, (Forme -> Pătrate -> Pătrate Mari). Cu acest cod, toate subcategoriile (Pătrate -> Pătrate Mari) sunt afișate. Cum pot spune acestui cod să repete procesul până când este găsit și afișat doar ultimul copil?
Dacă aveți soluții pentru asta, sunteți din nou eroii mei! Continuați-vă munca și blogul grozav!
GoranJakovljevic
este posibil să faceți acest lucru pentru 2 categorii în loc de una singură?
gashface
Cum aș include &orderby=ID ?
Andus Beckus
Super, mulțumesc!
Dar cum afișezi copiii tuturor categoriilor și nu doar cat 10?
Be great if someone could help with this.
Personal editorial
Dacă încercați să afișați o listă a tuturor categoriilor copil, atunci folosiți funcția wp_list_categories(). Aceasta are parametri care vă permit să listați doar categoriile copil sau doar categoriile părinte. Dar acest lucru nu funcționează pentru cazul despre care vorbim în acest articol.
Admin
Mattia
grozav, dar dacă vreau să afișez nu „categoria 10”, ci „categoria curentă”?
Keith Davis
Mari fragmente de informații de la voi.
Chiar trebuie să încep să mă apuc de PHP.
Site grozav, băieți, și am observat că ați ajuns la Pagerank 6!
Ce ziceți de câteva postări despre cum să vă creșteți pagerank-ul.