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!

Fă asta într-un child theme (temă copil) pentru a nu pierde modificările la actualizarea temei.

Funcționează destul de bine, dar nu acoperă cazurile pentru arhive și taxonomii personalizate.

Vedeți soluția lui Ben Gillbanks pentru toate arhivele de tip post și taxonomii.

În WP poți face lucrurile în multe feluri, dar eu întotdeauna am optat pentru cele mai simple soluții. Mulțumesc, Timo.

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 ai putea să spui care entități care nu sunt termeni ar trebui să apară în arhive?

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 )

Î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

get_the_archive_title_prefix()
returnează un șir de caractere, deci funcția de callback trebuie să fie '__return_empty_string'
în schimb.

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ă.

Î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?
