¿Cómo obtener get_the_term_list sin enlaces en las etiquetas de título de plantillas de archivo?

1 feb 2011, 16:28:42
Vistas: 38.8K
Votos: 18

¿Qué función mostrará las taxonomías personalizadas asociadas a una entrada como texto?

Actualmente estoy usando get_the_term_list que funciona muy bien para una página individual pero no tanto cuando se usa una taxonomía en la etiqueta de título permalink del archive-postype.php.

0
Todas las respuestas a la pregunta 5
2
25

Sin embargo, @anu tiene razón, descubrí que puedes llamar a la función de PHP strip_tags para eliminar las etiquetas del valor de retorno.

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );
1 feb 2011 21:18:40
Comentarios

Parece tan simple y hace el trabajo. ¿Hay alguna desventaja al usar esto?

Muhammad Asad Muhammad Asad
3 ene 2017 15:11:45

@Mohsin Una desventaja es que elimina todas las etiquetas, no solo la etiqueta <a>. Sin embargo, puedes evitar que se eliminen las etiquetas deseadas, así: $terms = strip_tags( $terms, '<li>' );

David David
6 dic 2017 10:20:52
1
18

wp_get_object_terms() devuelve los términos asociados a un objeto (como una entrada, página o post personalizado) como texto (normalmente en un array).

Desde la página del Codex para wp_get_object_terms()

$productcategories = wp_get_object_terms($post->ID, 'productcategories');

1 feb 2011 17:37:46
Comentarios

Ten en cuenta que los resultados de la consulta no se almacenan en caché como get_the_terms(). Consulta la página del codex para más información.

Dylan Dylan
8 sept 2016 07:25:22
1

Creo que la mejor manera es implementar un filtro para la lista de términos, que extraiga mediante expresiones regulares solo el texto, de la lista

Consulta get_the_terms_list() y el Hook en Recursos para Desarrolladores.

 $term_links = apply_filters( "term_links-{$taxonomy}", string[] $links ) 

Puedes implementar tu propio filtro.

1 feb 2011 16:50:11
Comentarios

Ese es exactamente el hook que encontré al leer el código fuente.

wittich wittich
2 feb 2023 09:57:29
0
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

Aquí $terms es un array, por lo que puedes usar un bucle foreach.

foreach( $terms as $term ) {
  echo $term;
}
5 jul 2019 22:37:58
0

Necesito lo mismo y probé la solución de Zack que funciona genial. Por ejemplo, si solo necesitas el término para poner en el id o clase de css. Solo una anotación sobre la solución, la función está mal llamada, correctamente es "get_the_term_list".

Muestro mi ejemplo:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );
17 ene 2013 13:10:13