Elimină "Categorie:", "Etichetă:", "Autor:" din the_archive_title
Am următorul cod în fișierul archive.php al temei mele:
<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>
Acesta îmi afișează titluri precum "Categorie: Rusia", "Etichetă: America", "Autor: John".
Aș dori să elimin partea cu "Categorie:", "Etichetă:" și "Autor:" și să afișez doar numele categoriei, etichetei și autorului.
Știe cineva cum pot realiza acest lucru?
Mulțumesc.
Puteți extinde filtrul get_the_archive_title pe care l-am menționat în acest răspuns
add_filter('get_the_archive_title', function ($title) {
if (is_category()) {
$title = single_cat_title('', false);
} elseif (is_tag()) {
$title = single_tag_title('', false);
} elseif (is_author()) {
$title = '<span class="vcard">' . get_the_author() . '</span>';
} elseif (is_tax()) { //pentru tipuri personalizate de postări
$title = sprintf(__('%1$s'), single_term_title('', false));
} elseif (is_post_type_archive()) {
$title = post_type_archive_title('', false);
}
return $title;
});
Funcționează! Mulțumesc, Pieter! Pentru utilizatorii mai puțin tehnici care caută aceeași soluție: Adaugi codul lui Pieter în fișierul functions.php și atât!
Nick
Fă asta într-un child theme (temă copil) pentru a nu pierde modificările la actualizarea temei.
Jürgen Paul
Funcționează destul de bine, dar nu acoperă cazurile pentru arhive și taxonomii personalizate.
JacobTheDev
Vedeți soluția lui Ben Gillbanks pentru toate arhivele de tip post și taxonomii.
Dan Knauss
În WP poți face lucrurile în multe feluri, dar eu întotdeauna am optat pentru cele mai simple soluții. Mulțumesc, Timo.
f055
Ei bine, asta nu funcționează pentru toate arhivele care nu sunt termeni. Deci, în opinia mea, nu este o soluție foarte bună.
GDY
@GDY ai putea să spui care entități care nu sunt termeni ar trebui să apară în arhive?
Iggy
Pentru titlul CPT fără cuvântul: 'Arhivă':
Dacă construiești un șablon personalizat de arhivă pentru un CPT și dorești să afișezi doar titlul CPT-ului fără cuvinte suplimentare precum "Arhivă", folosește următoarea funcție:
post_type_archive_title();
Surse: developer.wordpress.org
Perfect - această funcție este exact ceea ce aveam nevoie. Rețineți că primul parametru are deja valoarea implicită un șir gol, iar al doilea este implicit setat la true, ceea ce ar afișa rezultatul în loc să-l returneze... deci puteți folosi pur și simplu post_type_archive_title() pentru a obține exact același rezultat ca echo post_type_archive_title( '', false )
squarecandy
Începând cu WordPress 5.5, puteți elimina prefixul folosind acest hook:
add_filter('get_the_archive_title_prefix','__return_empty_string');
Mai mult context: https://wordpress.stackexchange.com/a/408321/152624
Jesse Nickles
get_the_archive_title_prefix() returnează un șir de caractere, deci funcția de callback trebuie să fie '__return_empty_string' în schimb.
Michael Bryan Sumner
Presupunând că formatul este întotdeauna: Prefix: Nume Arhivă, putem găsi prima apariție a două puncte urmate de un spațiu și afișa doar conținutul de după acestea, folosind get_the_archive_title() împreună cu funcțiile PHP substr() și strpos().
<?php // Afișează doar porțiunea din șir care urmează după primul ": "
echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>
director: wp-includes
fișier: general-template.php
găsește funcția: get_the_archive_title()
schimbă:
if ( is_category() ) {
$title = sprintf( __( 'Categorie: %s' ), single_cat_title( '', false ) );
} elseif ( is_tag() ) {
$title = sprintf( __( 'Etichetă: %s' ), single_tag_title( '', false ) );
} elseif ( is_author() ) {
$title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
}
în:
if ( is_category() ) {
$title = sprintf( __( '%s' ), single_cat_title( '', false ) );
} elseif ( is_tag() ) {
$title = sprintf( __( '%s' ), single_tag_title( '', false ) );
} elseif ( is_author() ) {
$title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' );
}//dacă dorești să elimini sau doar să modifici textul dacă este necesar
Aceasta este o idee foarte, foarte proastă. Nu poți face update acum fără a crea o ramură separată.
fuxia
Îmi cer scuze dacă încalc regulile, dar asta e doar o altă soluție, nimic rău intenționat. Deci, spui că hack-uiți propriul site sau că nu pot să împărtășesc cod din fișierele de nucleu?
Dragan Nikolic