¿Cómo usar la descripción de la etiqueta como el atributo del título?

4

Estoy tratando de usar etiquetas para crear una lista de referencias cruzadas para cada publicación y quiero que la descripción de la etiqueta se muestre junto a la etiqueta y / o como el atributo de título del hipervínculo, de modo que la descripción muestre cuándo un visitante tiene el cursor sobre el enlace.

Usando el tema TwentyTen, localicé el código en functions.php y lo enmendé de la siguiente manera:

function twentyten_posted_in() {
    // Retrieves tag list of current post, separated by commas.
    $tag_list = get_the_tag_list( $before = '<br /> <br />' , $sep = ' here'.'<br /><br />' , $after = '<br />' );
    if ( $tag_list ) {
        $posted_in = __( 'Cross Reference %2$s. ', 'twentyten' );
    } 


    // Prints the string, replacing the placeholders.
    printf(
        $posted_in,
        get_the_category_list( ',  ' ),
        $tag_list,
                get_permalink(),
        the_title_attribute( 'echo=0' )
    );
}
endif;

Como puede ver, he cambiado el encabezado para decir Referencia cruzada y al agregar saltos tengo una lista de etiquetas en lugar de un párrafo. He identificado dónde quiero que la descripción de la etiqueta vaya con la palabra "aquí".

Pensé que sería tan simple como agregar tag_description () pero eso no funcionó. Si pongo un número entre los paréntesis, por ejemplo. tag_description (5) muestra la descripción de la etiqueta en el lugar correcto, pero, por supuesto, todas las etiquetas tienen la descripción incorrecta.

¡Ayuda!

Gracias Ian.

    
pregunta Ian Walters 18.10.2011 - 16:27

1 respuesta

1

Use get_the_terms() y cree una matriz personalizada:

function wpse_31396_terms_with_desc( $post_id = NULL, $taxonomy = 'post_tag' )
{
    NULL === $post_id && $post_id = get_the_ID();

    if ( empty ( $post_id ) )
    {
        return '';
    }

    $terms = get_the_terms( $post_id, $taxonomy );

    if ( empty ( $terms ) )
    {
        return '';
    }

    $list = array ();


    foreach ( $terms as $term )
    {
        $list[ $term->term_id ] = array(
            'url' => get_term_link( $term, $taxonomy ),
            'name' => $term->name,
            'description' => $term->description
        );
    }

    return $list;
}

Uso de muestra para el functions.php :

add_filter( 'the_content', 'wpse_31396_add_terms_with_desc' );

function wpse_31396_add_terms_with_desc( $content )
{
    $tags = wpse_31396_terms_with_desc();

    if ( '' === $tags )
    {
        return $content;
    }

    $taglist = '<h2>Cross Reference</h2><ul class="taglist-with-desc">';
    foreach ( $tags as $tag )
    {
        $desc = empty ( $tag['description'] )
            ? '' : '<div class="tagdesc">' . wpautop( $tag['description'] ) . '</div>';
        $taglist .= sprintf(
            '<li><a href="%1$s">%2$s</a>%3$s</li>',
            $tag['url'],
            $tag['name'],
            $desc
        );
    }

    return $content . $taglist . '</ul>';
}

    
respondido por el fuxia 07.07.2012 - 16:48

Lea otras preguntas en las etiquetas