Personalizar content() y excerpt() según more y extractos
publicado el 16.10.09 en Wordpress
Aprovecho a compartirles un pequeño código que desarrollé para un trabajo sobre WordPress. La idea es la siguiente: En una página principal, archivo, de categoría o cualquier otra que llame a una cantidad de entradas desde el loop usar estas condiciones:
- Si el post tiene un excerpt generado por el usuario, mostrarlo
- Si no tiene pero tiene el contenido separado por un more, mostrar hasta ahí
- Si no tiene excertp del usuario ni more, autogenerar un excerpt
Para ello utilizaremos el siguiente código, el cual puede ser usado dentro de la llamada por defecto a los post o con query_posts(). En el ejemplo usaremos la opción normal.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php global $more; $more = 0; ?>
<?php if ( $post->post_excerpt ) { ?>
<?php the_excerpt(); ?>
<?php } elseif ( stristr(get_the_content('the_more_tag'), 'the_more_tag') == TRUE ) { ?>
<?php the_content('Seguir leyendo...'); ?>
<?php } else { ?>
<?php the_excerpt() ?>
<?php } ?>
<?php endwhile; else: ?>
<?php endif; ?>La primera línea después del loop hará que se respete el corte del more sea cual sea la parte del blog en la que estemos. Luego, con
stristr(get_the_content('the_more_tag'), 'the_more_tag') == TRUE agregamos un enlace a los posts que tengan este corte, el cual no se imprimirá sino que solo lo usaremos para diferenciarlos. El resto creo que está bastante claro.
Este post tiene 2 respuestas

