Eliminar "Categoría:", "Etiqueta:", "Autor:" de the_archive_title

27 feb 2015, 07:38:17
Vistas: 152K
Votos: 87

Tengo el siguiente código en mi archivo archive.php del tema:

<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>

Esto me muestra títulos como "Categoría: Rusia", "Etiqueta: América", "Autor: John".

Me gustaría eliminar la parte de "Categoría:", "Etiqueta:" y "Autor:" y mostrar solo los nombres de la categoría, etiqueta y autor.

¿Alguien sabe cómo lograr esto?

Gracias.

0
Todas las respuestas a la pregunta 11
7
137

Puedes extender el filtro get_the_archive_title que mencioné en esta respuesta

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()) { // para tipos de contenido personalizados
        $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
Comentarios

¡Eso funciona! ¡Gracias, Pieter! En caso de que usuarios menos técnicos estén buscando la misma solución: Añades el código de Pieter a tu archivo functions.php y ¡eso es todo!

Nick Nick
27 feb 2015 23:05:56

Haz esto en un tema hijo para que tus cambios no se pierdan al actualizar el tema.

Jürgen Paul Jürgen Paul
19 ago 2016 10:01:56

Esto funciona bastante bien, pero faltan casos para archivos y taxonomías personalizadas.

JacobTheDev JacobTheDev
23 nov 2016 18:57:42

Consulta la solución de Ben Gillbanks para todos los archivos de tipos de entrada y taxonomías.

Dan Knauss Dan Knauss
27 ene 2018 07:54:43

Acabo de añadir soporte para archivos de CPT :)

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

no cubre el año

Corey Corey
16 jul 2020 21:41:39

Respuesta antigua pero aún funcional. Gracias. Mi voto positivo para ti.

user9437856 user9437856
5 jul 2021 13:34:41
Mostrar los 2 comentarios restantes
4
49

Usar la función single_term_title()

5 mar 2016 00:55:07
Comentarios

En WordPress hay muchas formas de hacer las cosas, pero siempre opté por las soluciones más simples. Gracias Timo.

f055 f055
11 ene 2018 16:22:34

Bueno, eso simplemente no funciona para todos los archivos que no son términos. Así que en mi opinión no es una solución muy buena.

GDY GDY
5 abr 2019 10:13:12

@GDY ¿podrías decir qué elementos que no son términos deberían aparecer en los archivos?

Iggy Iggy
17 dic 2019 07:19:10

esto me devuelve 'null', ¿hay algún ajuste que deba configurar?

Marcello Perri Marcello Perri
15 dic 2020 14:38:27
2
22

Para el título de CPT sin la palabra: 'Archivo':

Si estás construyendo una plantilla de archivo personalizada para un CPT (Custom Post Type) y deseas mostrar solo el título del CPT sin palabras adicionales como "Archivo", utiliza la siguiente función:

post_type_archive_title();

Fuente: developer.wordpress.org

10 ago 2017 13:24:40
Comentarios

Genial - esta función es justo lo que necesitaba. Ten en cuenta que el primer parámetro ya tiene como valor predeterminado una cadena vacía y el segundo tiene como valor predeterminado true, lo que mostraría el resultado en lugar de devolverlo... por lo que podrías simplemente usar post_type_archive_title() para obtener exactamente el mismo resultado que echo post_type_archive_title( '', false )

squarecandy squarecandy
9 dic 2019 01:32:37

¡Esta debería ser la respuesta aceptada!

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

A partir de WordPress 5.5 puedes eliminar el prefijo con este hook:

add_filter('get_the_archive_title_prefix','__return_empty_string');

1 abr 2021 22:15:03
Comentarios

Más contexto: https://wordpress.stackexchange.com/a/408321/152624

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

get_the_archive_title_prefix() devuelve una cadena, por lo que el callback debe ser '__return_empty_string' en su lugar.

Michael Bryan Sumner Michael Bryan Sumner
16 ene 2025 23:10:48

@MichaelBryanSumner return false funciona pero tienes razón, una cadena sería la opción correcta. Actualizaré mi respuesta gracias.

Andrew J Klimek Andrew J Klimek
18 ene 2025 00:43:09
1
11

Siento que esto simplifica demasiado las cosas, pero esto es lo que hice...

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

esto no funcionaría para un sitio web que no esté en inglés.

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

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; en taxonomy-category.php fuera del directorio público del tema.

13 ago 2016 05:22:02
1

Yo usaría un filtro y lo pondría en un archivo functions.php

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

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

Esta es una buena solución, pero realmente deberías verificar is_category() antes de actualizar $title a single_cat_title, y si no es is_category(), entonces simplemente devuelve el $title sin cambios..

Paul 501 Paul 501
21 ago 2020 01:53:36
1

Puedes usar lo siguiente para obtener solo el título sin el prefijo

single_cat_title();
27 feb 2018 20:45:37
Comentarios

Aunque es cierto, esto ya se ha sugerido antes en otras respuestas.

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

Asumiendo que el formato siempre es: Prefijo: Nombre del Archivo, podemos simplemente encontrar los dos puntos seguidos de un espacio, y mostrar solo el contenido después de esto, usando get_the_archive_title() con las funciones substr() y strpos() de PHP.

<?php // Mostrar solo la porción de la cadena que sigue al primer ": "
  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

directorio: wp-includes

archivo: general-template.php

encontrar función: get_the_archive_title() cambiar:

if ( is_category() ) {
        $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) );
    } elseif ( is_tag() ) {
        $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) );
    } elseif ( is_author() ) {
        $title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
    }

a:

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>' );
    }//si deseas eliminar o simplemente cambiar el texto si lo necesitas
6 sept 2016 16:38:23
Comentarios

Eh, ¿realmente estás sugiriendo hackear el núcleo aquí?

cjbj cjbj
6 sept 2016 16:42:38

Esta es una idea muy, muy mala. No puedes actualizar ahora sin crear una rama separada.

fuxia fuxia
6 sept 2016 16:57:10

Perdón si rompo las reglas, doy mi palabra por eso, pero esto es solo otra solución, nada malicioso. Entonces, ¿estás diciendo que hackeo mi propio sitio o que no puedo compartir código de los archivos del núcleo?

Dragan Nikolic Dragan Nikolic
6 sept 2016 20:36:42

Bueno, es tu sitio web y puedes editar lo que quieras, incluso los archivos principales. Sin embargo, el sitio se romperá si actualizas tu WordPress...

Raccoon Raccoon
22 sept 2016 03:08:06