! - Más-- no funciona

4

Tengo la siguiente plantilla de blog con the_content outputted. He colocado <!--more-->

Sin embargo, no parece estar funcionando,

enlace

¿Hay algo que deba incluirse dentro de las funciones para que esto funcione?

Código de mi plantilla de blog

<?php
/*
Template Name: Blog Template
*/
 ?>

<?php get_header();?>
<?php echo get_the_post_thumbnail($post->ID, 'single-post-thumbnail'); ?>
<div id="maincontentwrap" role="main">
<?php query_posts('showposts=5'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 <div class="datebackground"><span class="day"><?php echo get_the_date('j'); ?></span>    <span class="month"><?php echo get_the_date('M'); ?></span></div>
<div class="postsh1"><?php echo get_the_title(); ?></div>
<div id="blogwrapper">
Written by <?php the_author_posts_link() ?> in <?php the_category(); ?>
<?php the_content('read more...'); ?>

<br>
<div class="pagedivider"></div>
</div>  
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div><!-- #content -->
<?php get_footer(); ?>

EDIT

Encontré esto dentro del tema Twenty Twelve y he intentado adaptarlo a mi propio sin embargo, el código real ... errores ...

function DTheme_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'DTheme_excerpt_length' );

if ( ! function_exists( 'DTheme_continue_reading_link' ) ) :
/**
 * Returns a "Continue Reading" link for excerpts
 *
 * @since Twenty Ten 1.0
 * @return string "Continue Reading" link
 */
function DTheme_continue_reading_link() {
return ' <a href="'. get_permalink() . '">' . __( 'Continue reading <span class="meta-  nav">&rarr;</span>', 'DTheme' ) . '</a>';
}
endif;

/**
 * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and twentyten_continue_reading_link().
 *
 * To override this in a child theme, remove the filter and add your own
 * function tied to the excerpt_more filter hook.
 *
 * @since Twenty Ten 1.0
 * @return string An ellipsis
 */
function DTheme_auto_excerpt_more( $more ) {
return ' &hellip;' . DTheme_continue_reading_link();
}
add_filter( 'excerpt_more', 'DTheme_auto_excerpt_more' );
?>

¿Es un caso en el que necesitaría adaptar lo anterior para que esto funcione?

EDIT

Hola a todos, esto parece funcionar parcialmente después de una ayuda increíble a continuación, sin embargo, todavía no se muestra dentro del contenido y las imágenes, por ejemplo, están cambiando de tamaño ... vea mi código ahora y también la captura de pantalla

<?php get_header(); ?>
<div id="maincontentwrap" role="main">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="datebackground"><span class="day"><?php echo get_the_date('j'); ?></span>    <span class="month"><?php echo get_the_date('M'); ?></span></div>
<div class="postsh1"><?php echo get_the_title(); ?></div>
<div id="blogwrapper">
Written by <?php the_author_posts_link() ?> in <?php the_category(); ?>
<?php the_content(); ?>

 <br>
<div class="pagedivider"></div>
</div>  
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div><!-- #content -->
<?php get_footer(); ?>

    
pregunta Kirsty Marks 19.12.2012 - 19:41

1 respuesta

2

Veo varias cosas que pueden estar contribuyendo a tu problema.

Primero, estás usando una plantilla de página personalizada para mostrar el índice de publicaciones del blog, en lugar de usar home.php como lo especifica la Jerarquía de plantillas. Eso podría ser un problema, porque la etiqueta <!--more--> no funciona en páginas singulares, y como está haciendo cosas extrañas con la consulta predeterminada (más sobre eso más adelante), el $more global en el que se basa <!--more--> puede que no se esté configurando como esperas que sea.

Configuración adecuada de la página estática como índice de publicaciones de blog

Entonces, el primer paso es configurar una configuración adecuada para una página estática como índice de publicaciones de blog:

  1. Asegúrese de que la página estática elegida esté seleccionada como Página de publicaciones en Dashboard -> Settings -> Reading
  2. Cambie el nombre de su plantilla de página personalizada como home.php
  3. Eliminar la etiqueta Template Name: Blog Template del encabezado phpDoc
  4. (Supuesto: ya tiene una página estática seleccionada como Página de inicio )

No pisar la consulta principal

Si solo eso no resuelve su problema, entonces el siguiente problema a investigar es la forma en que está pisando la consulta predeterminada con query_posts() . No uses nunca query_posts() , para nada, nunca.

Si desea configurar el índice de sus publicaciones de blog para que muestre un número determinado de publicaciones, filtre el $query a través de pre_get_posts , así:

function wpse76634_filter_pre_get_posts( $query ) {
    if ( is_home() && $query->is_main_query() ) {
        $query->set( 'posts_per_page', '5' );
    }
}
add_action( 'pre_get_posts', 'wpse76634_filter_pre_get_posts' );

Luego, deshazte de tu llamada a query_posts() en el archivo de plantilla.

Uso adecuado de <!--more-->

Si eso no resuelve su problema, el siguiente paso es verificar su uso de la etiqueta <!--more--> .

Asegúrese de que la etiqueta sea exactamente <!--more--> , sin espacios entre <!-- y more o entre more y --> .

Problemas fuera de la plantilla

Si eso aún no resuelve su problema, puede tener código en algún lugar, ya sea en functions.php o en un complemento, que está alterando la funcionalidad de la etiqueta <!--more--> .

Para probar un problema relacionado con el complemento, desactive todos los complementos, cambie al tema predeterminado (actualmente: Twenty Twelve) y verifique si la etiqueta <!--more--> funciona correctamente. Si luego funciona correctamente, vuelva a habilitar sus complementos uno por uno. Si la etiqueta <!--more--> aún funciona correctamente con todos los complementos activos, entonces el problema está en algún lugar de tu tema.

El siguiente paso es descartar el archivo de plantilla. Si has seguido los pasos anteriores, cambia el nombre de home.php como home.php.old , de modo que WordPress retroceda a index.php para representar el Índice de publicaciones de blogs. Luego, verifique si la etiqueta <!--more--> funciona correctamente.

Si hace , entonces el problema es su plantilla. Si no , entonces el problema se encuentra en functions.php .

    
respondido por el Chip Bennett 19.12.2012 - 22:13

Lea otras preguntas en las etiquetas