Elimină "Categorie:", "Etichetă:", "Autor:" din the_archive_title

27 feb. 2015, 07:38:17
Vizualizări: 152K
Voturi: 87

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.

0
Toate răspunsurile la întrebare 11
7
137

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;
});
27 feb. 2015 08:37:12
Comentarii

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 Nick
27 feb. 2015 23:05:56

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

Jürgen Paul Jürgen Paul
19 aug. 2016 10:01:56

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

JacobTheDev JacobTheDev
23 nov. 2016 18:57:42

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

Dan Knauss Dan Knauss
27 ian. 2018 07:54:43

Tocmai am adăugat suport pentru arhivele CPT :)

Maxwell s.c Maxwell s.c
9 mar. 2020 22:43:04

nu acoperă anul

Corey Corey
16 iul. 2020 21:41:39

Răspuns vechi, dar încă funcționează. Mulțumesc. Am votat pozitiv.

user9437856 user9437856
5 iul. 2021 13:34:41
Arată celelalte 2 comentarii
4
49

Folosește funcția single_term_title()

5 mar. 2016 00:55:07
Comentarii

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

f055 f055
11 ian. 2018 16:22:34

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
5 apr. 2019 10:13:12

@GDY ai putea să spui care entități care nu sunt termeni ar trebui să apară în arhive?

Iggy Iggy
17 dec. 2019 07:19:10

îmi returnează 'null', există vreun setare pe care ar trebui să o configurez?

Marcello Perri Marcello Perri
15 dec. 2020 14:38:27
2
22

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

10 aug. 2017 13:24:40
Comentarii

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 squarecandy
9 dec. 2019 01:32:37

Acesta ar trebui să fie răspunsul acceptat!

Suraj Lulla Suraj Lulla
2 feb. 2023 09:07:22
3
14

Începând cu WordPress 5.5, puteți elimina prefixul folosind acest hook:

add_filter('get_the_archive_title_prefix','__return_empty_string');

1 apr. 2021 22:15:03
Comentarii

Mai mult context: https://wordpress.stackexchange.com/a/408321/152624

Jesse Nickles Jesse Nickles
19 feb. 2024 10:13:50

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 Michael Bryan Sumner
16 ian. 2025 23:10:48

@MichaelBryanSumner return false funcționează, dar ai dreptate, un șir de caractere ar fi alegerea corectă. Actualizez răspunsul meu, mulțumesc.

Andrew J Klimek Andrew J Klimek
18 ian. 2025 00:43:09
1
11

Simț că asta simplifică prea mult lucrurile, dar asta am făcut...

<h1><?php echo str_replace("Arhive: ", "", get_the_archive_title()); ?></h1>
30 nov. 2016 03:09:41
Comentarii

acest lucru nu ar funcționa pentru un site web care nu este în limba engleză.

Maxwell s.c Maxwell s.c
9 nov. 2018 17:50:01
0

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; în fișierul taxonomy-category.php din afara secțiunii publice a temei.

13 aug. 2016 05:22:02
1

Aș folosi un filtru și l-aș pune într-un fișier functions.php

add_filter( 'get_the_archive_title', 'replaceCategoryName'); 
   function replaceCategoryName ($title) {

   $title =  single_cat_title( '', false );
   return $title; 
}
14 mai 2018 13:23:44
Comentarii

Aceasta este o soluție bună, dar într-adevăr ar trebui să verifici is_category() înainte de a actualiza $title cu single_cat_title, iar dacă nu este is_category(), atunci ar trebui să returnezi $title neschimbat..

Paul 501 Paul 501
21 aug. 2020 01:53:36
1

Puteți utiliza următoarea funcție pentru a afișa doar titlul fără prefix

single_cat_title();
27 feb. 2018 20:45:37
Comentarii

Deși este adevărat, acest lucru a fost sugerat anterior în alte răspunsuri.

Nicolai Grossherr Nicolai Grossherr
27 feb. 2018 20:52:14
0

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);
?>
7 oct. 2019 00:59:45
0
add_filter('post_type_archive_title', '__return_empty_string', 5);
15 feb. 2022 21:53:32
4
-6

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
6 sept. 2016 16:38:23
Comentarii

Err, sugerezi cu adevărat să hack-uiți nucleul aici?

cjbj cjbj
6 sept. 2016 16:42:38

Aceasta este o idee foarte, foarte proastă. Nu poți face update acum fără a crea o ramură separată.

fuxia fuxia
6 sept. 2016 16:57:10

Î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 Dragan Nikolic
6 sept. 2016 20:36:42

Ei bine, este site-ul tău și poți edita orice dorești - chiar și fișierele de bază. Totuși, site-ul se va strica dacă îți actualizezi Wordpress...

Raccoon Raccoon
22 sept. 2016 03:08:06