Cómo obtener la categoría de la entrada y enlazarla al archivo (de la categoría)

8 ene 2012, 14:29:34
Vistas: 26.8K
Votos: 3

Estoy tratando de diseñar un botón en la barra lateral que esté relacionado con la entrada mostrada. El botón es básicamente "otras noticias en CAT1". Tengo este fragmento de código:

<div id="pagine">
<?php 
$category = get_the_category(); 
if($category[0]){
echo '<a href="'.get_category_link($category[0]->term_id ).'"><div id="pagine"><ul><li>Noticias en '.$category[0]->cat_name.'</li></ul></div></a>';
}
?>
</div>

que desafortunadamente muestra la categoría incorrecta. ¿Puede alguien decirme cómo hacerlo? No debería ser tan difícil, acabo de empezar con WordPress.

0
Todas las respuestas a la pregunta 2
0

Uno de estos tres debería funcionar para ti...

1. Función: the_category();

Noticias en <?php the_category(', '); ?>

Se muestra como:

Noticias en WordPress, Computadoras, Blogging

Y si solo se asigna una categoría a la publicación, se muestra así:

Noticias en WordPress

2. Función: get_the_category_list();

<div id="pagine"><?php echo get_the_category_list(); ?></div>

Se muestra como:

<div id="pagine">
    <ul class="post-categories">
        <li>
            <a href="http://example.com/category/wordpress/" title="Ver todas las publicaciones en Negocios" rel="category tag">WordPress</a>
        </li>
        <li>
            <a href="http://example.com/category/computers/" title="Ver todas las publicaciones en Negocios" rel="category tag">Computadoras</a>
        </li>
    </ul>
</div>

Y si solo se asigna una categoría a la publicación, el resultado sería así:

<div id="pagine">
    <ul class="post-categories">
        <li>
            <a href="http://example.com/category/wordpress/" title="Ver todas las publicaciones en Negocios" rel="category tag">WordPress</a>
        </li>
    </ul>
</div>

3. Función: single_cat_title();

Si deseas mostrar solo una categoría (se mostrará la categoría con el ID más bajo) sin importar cuántas categorías estén asignadas a una publicación, usa algo como esto:

<div id="pagine">
    <ul>
        <li>
            <?php
                $category = get_the_category();
                echo '<a href="'.get_category_link($category[0]->cat_ID).'">Noticias en ' . $category[0]->cat_name . '</a>';
            ?>
        </li>
    </ul>
</div>

El código anterior siempre muestra una categoría, así:

Noticias en WordPress

Así que, dados los códigos (y lo que hace cada uno), adáptalos a tus necesidades.

16 jul 2012 12:11:20
2

get_the_category devuelve un array del objeto stdClass de todas las categorías asociadas con el post_id actual.

$category[0] te dará la primera categoría en el array. Para ver el mapeo haz.

<?php print_r( $category ); ?>
8 ene 2012 16:12:42
Comentarios

Gracias, Chris_O. La razón por la que mostraba la categoría incorrecta es que, por alguna razón, ¡la mayoría de las publicaciones tienen la categoría equivocada! El print_r mostró que la mayoría de ellas están en la categoría incorrecta. Pero lo preocupante es que en el CMS de WP ¡la publicación está en la categoría correcta! EJ. En el CMS, postA está en categoryA, ¡mientras que con el print_r muestra categoryB! ¿Por qué crees que sucede esto? Gracias por tu tiempo

Filippo Bonino Filippo Bonino
8 ene 2012 19:46:55

tu código solo funcionará si una publicación está en una sola categoría. Además, ten en cuenta que tu código está generando código HTML no válido, al tener un div y ul dentro de una etiqueta de enlace.

Michael Michael
9 ene 2012 00:25:05