¿Cómo obtengo la URL de categoría desde get_the_category?

7 mar 2016, 13:30:41
Vistas: 36.8K
Votos: 5

Mi bucle a continuación muestra las últimas 4 entradas de la misma categoría que la entrada que se está viendo actualmente. Está ubicado dentro de single.php.

Estoy tratando de obtener la URL de esa misma categoría para poder enlazar de vuelta a category.php para ver todas las entradas de esa misma categoría. Pensé que obtener el slug de la categoría funcionaría pero mi código a continuación no muestra nada:

<?php
// Variable global para la entrada
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       // Excluir la entrada actual
       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1">Enlace a la entrada actual</a>

    <?php } endforeach; ?>

<a href="<?php bloginfo('url'); ?>/categories/<?php echo $childcat->cat_slug; ?>" title="Ver todo" class="btn border"><i class="i-right-double-arrow"></i> Ver todo <?php echo $childcat->cat_slug; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
1
Comentarios

Esto y esto realmente ayudaron a comprender mejor el tema.

lowtechsun lowtechsun
15 jun 2017 11:53:40
Todas las respuestas a la pregunta 2
0

Usar:

get_category_link( $category_id );

Ver:

https://codex.wordpress.org/Function_Reference/get_category_link

En tu caso específico:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Enlace a la publicación actual</a>

    <?php } endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" title="Ver todos" class="btn border"><i class="i-right-double-arrow"></i> Ver todos <?php echo $category->name; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
7 mar 2016 13:33:28
2

UN CÓDIGO SENCILLO Y LIMPIO

Soy un principiante :)

Modifiqué los códigos proporcionados por Adam y eliminé las partes innecesarias que no se requerían para responder la pregunta inicial.

Funcionó para mí al 100%.

Pruébalo.

Por favor, avísame si también te funcionó :)

<?php $categories = get_the_category();
foreach ($categories as $category) :
endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  ENLACE A LA CATEGORÍA ACTUAL DEL POST >>
</a>

O

<?php $categories = get_the_category();
foreach ($categories as $category) : ?>

La categoría es:
<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  <?php echo $category->name; ?>
</a>

<?php endforeach; ?>

COMBINA OTROS ELEMENTOS COMO QUIERAS. JUEGA UN POCO, AMIGO.

26 nov 2020 10:29:06
Comentarios

No entiendo el foreach vacío. ¿Cómo funciona eso? ¿Eso simplemente selecciona la última entrada en $categories como $category, para que solo muestres el enlace de la última categoría?

Rup Rup
26 nov 2020 13:10:01

Parece que foreach es obligatorio. Sin él, el código no funcionará correctamente. Puedes usar cualquier cosa como término. Puedes decidir cambiarlo a $category = get_the_category(); foreach ($category as $category) : Espero que esto ayude. No olvides, soy un principiante. Solo estoy jugando con cosas. Si te diste cuenta, eliminé una línea de código irrelevante. Diviértete.

BarryOvb BarryOvb
27 nov 2020 12:25:40