Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Agregar un category name dentro de un class

Estas en el tema de Agregar un category name dentro de un class en el foro de WordPress en Foros del Web. Buena chicos! Consulta capos. tengo un foreach que me devuelve las categorias de un post y me gustaría agregar este listado de categorías adentro de ...
  #1 (permalink)  
Antiguo 09/04/2020, 18:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 1
Agregar un category name dentro de un class

Buena chicos!

Consulta capos. tengo un foreach que me devuelve las categorias de un post y me gustaría agregar este listado de categorías adentro de un class en un div

------------------------codigo------------------
<?php
$categories = get_the_terms( $post->ID, 'categorias' );
foreach ( $categories as $category ) :
echo ' ' . $category->name . '<br>';
endforeach;
?>

<div class="mb-3 pics animation all (aca agregar mi $category->name )">

</div>
------------------------codigo------------------

como puedo hacerlo?? si esta fuera del loop no funciona, como pego el codigo ..<div class=...... dentro de un for

Gracias desde ya
Saludos

Gracias
  #2 (permalink)  
Antiguo 10/04/2020, 12:52
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Agregar un category name dentro de un class

Convierte tu objeto en un array, después podrás usar la array_column e implode para obtener un string que a su vez podrás imprimir mediante un echo en tu HTML sin necesidad de pasar por un loop

Facil no lo crees? :D Mucha suerte
  #3 (permalink)  
Antiguo 11/04/2020, 09:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 1
Respuesta: Agregar un category name dentro de un class

Gracias master por la respuesta:

Al final hice algo mas tarzanistico pero funciono

Dejo el codigo por si alguien le sirve o lo ordena

------------------------------

<?php $loop = new wp_Query(array(
'post_type' => 'portafolio_casas',
'orderby' => 'title',
'order' => 'DESC',
'tax_query' => array(
array(
'taxonomy' => 'categorias',
'field' => 'slug',
'terms' => 'casas','condominios','hoteles-resort','viviendas'
))
));
?>
<?php while ($loop->have_posts()): $loop->the_post(); ?>

<?php
$categories = get_the_terms( $post->ID, 'categorias' );
$cls = '';

if ( ! empty( $categories ) ) {
foreach ( $categories as $cat ) {
$cls .= $cat->slug . ' ';
}
}
?>

<div class="mb-3 pics animation all <?php echo $cls; ?>">
</div
-----------------------------------------------

Saludos
  #4 (permalink)  
Antiguo 11/04/2020, 16:14
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Agregar un category name dentro de un class

Que bueno que te funcionara, realmente creo que te fuiste por una buena alternativa que incluso yo he usado mas de una vez,

Dado que ya lo has intentado, aqui te va un ejemplo de lo que intente decir anteriormente

Código PHP:
Ver original
  1. <?php
  2. $categories = $categories = get_the_terms( $post->ID, 'categorias' );
  3.  
  4. $catArr = (array) $categories; //convertimos en un Array
  5.  
  6. $catNames = array_column($catArr, 'slug'); // obtenemos un array con los puros slug de la categoria, los nombres no nos sirven por los acentos o espacios que pueadan contener
  7.  
  8. $catClasses = implode(' ', $catNames); // generamos una lista de categorias separadas por espacios
  9.  
  10. //-------------------
  11. $cat_list_string = implode(' ', array_column((array) $categories, 'name'));// lo mismo que el proceso anterior pero en una linea

Etiquetas: class, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:54.