¿get_the_excerpt() no devuelve una cadena vacía cuando the_excerpt está en blanco?

14 ene 2011, 00:30:24
Vistas: 2.59K
Votos: 1

En el código siguiente se representa una lista de enlaces de publicaciones recientes. Solo estoy intentando mostrar el nombre de la publicación junto con su extracto, si existe. Para ello, estoy usando la función get_link_excerpt($post) para determinar si la publicación actual en el bucle tiene un extracto.

Funciona correctamente si la publicación tiene un extracto, pero si no lo tiene, la función get_the_excerpt() está devolviendo su propio extracto generado a partir del contenido de la página actual.

En este caso, estoy colocando esta función en la página de inicio, por lo que cada publicación que no tiene un extracto explícito está obteniendo un extracto virtual del contenido de la página principal.

Al parecer, estoy pasando $post incorrectamente, ¿cuál es la forma correcta de hacerlo aquí?

function show_footer_recent(){
    $myquery = new WP_Query();$myquery->query(array('post__not_in' => get_option('sticky_posts')));
    $myrecentpostscount = $myquery->found_posts;
    if ($myrecentpostscount > 0){ ?>
    <div>
        <ul><i>Últimas Noticias y Artículos</i>
            <?php global $post;$myrecentposts = get_posts(array('post__not_in' => get_option('sticky_posts'),'numberposts' => get_option('cb2_recent_count')));
            foreach($myrecentposts as  $idxrecent=>$post) { ?>
                <li class="page_item">
                    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php echo get_link_excerpt(); ?>
                </li><?php } ?>
        </ul>
    </div>
<?php }} 

function get_link_excerpt(){
    $LinkExcerpt = strip_tags(substr(get_the_excerpt(), 0, 75 ));
    if($LinkExcerpt != '')
    {
        return ": ".$LinkExcerpt."...";
    }
    return false;
    }
1
Comentarios

get_the_excerpt no acepta ningún argumento. Devuelve el extracto de la publicación actual en el bucle (del $post global)

onetrickpony onetrickpony
14 ene 2011 00:47:37
Todas las respuestas a la pregunta 1
1

Lo conseguí funcionar. Esto es lo que tuve que hacer en mi función de utilidad...

function get_link_excerpt(){
// Comprobar si hay un extracto
if(has_excerpt()){
    // Obtener los primeros 75 caracteres del extracto y eliminar etiquetas HTML
    $LinkExcerpt = strip_tags(substr(get_the_excerpt(), 0, 75 ));
    // Devolver el extracto formateado
    return ": ".$LinkExcerpt."...";
}
// Devolver falso si no hay extracto
return false;
}
14 ene 2011 00:59:13
Comentarios

podrías eliminar el argumento $post, es redundante

onetrickpony onetrickpony
14 ene 2011 01:02:32