! - Mais-- não funcionando

4

Eu tenho o seguinte modelo de blog com o the_content produzido. Eu coloquei <!--more-->

No entanto, não parece estar funcionando,

enlace

Existe alguma coisa que precise ser incluída nas funções para que isso funcione?

Código do meu modelo 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(); ?>

EDITAR

Eu encontrei isso dentro do tema Twenty Twelve e eu tentei adaptar isso para o meu próprio no entanto o - erros do código real ...

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' );
?>

É um caso que eu precisaria adaptar o acima para isso funcionar?

EDITAR

Oi pessoal, isso parece estar funcionando depois da incrível ajuda abaixo, no entanto, ele ainda não está sendo exibido no conteúdo e também as imagens, por exemplo, estão redimensionadas ... veja meu código agora e também captura de tela

<?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(); ?>

    
por Kirsty Marks 19.12.2012 / 19:41

1 resposta

2

Eu vejo várias coisas que podem estar contribuindo para o seu problema.

Primeiro, você está usando um modelo de página personalizado para exibir o índice de postagens do blog, em vez de usar home.php conforme especificado pela Hierarquia de modelo. Isso pode ser um problema, porque a tag <!--more--> não funciona em páginas singulares e, como você está fazendo coisas interessantes com a consulta padrão (mais sobre isso abaixo), o% global$more no qual <!--more--> depende pode não estar configurando como você espera que seja.

Configuração adequada da página estática como índice de postagens de blog

O primeiro passo é configurar uma configuração adequada para uma página estática como o índice de postagens do blog:

  1. Verifique se sua página estática selecionada está selecionada como Página de postagens em Dashboard -> Settings -> Reading
  2. Renomeie seu modelo de página personalizado como home.php
  3. Remova a tag Template Name: Blog Template do cabeçalho phpDoc
  4. (pressuposto: você já tem uma página estática selecionada como página inicial )

Não pise na consulta principal

Se isso não resolver o problema sozinho, a próxima questão a investigar é a maneira como você está pisando na consulta padrão com query_posts() . Nunca use query_posts() , para qualquer coisa, nunca.

Se você quiser definir o índice de postagens do seu blog para exibir um determinado número de postagens, filtre o $query via pre_get_posts , assim:

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' );

Em seguida, elimine sua chamada para query_posts() no arquivo de modelo.

Uso adequado de <!--more-->

Se isso não resolver seu problema, a próxima etapa é verificar o uso da tag <!--more--> em si.

Verifique se a tag é exatamente <!--more--> , sem espaços entre <!-- e more ou entre more e --> .

Problemas fora do modelo

Se isso ainda não resolver o seu problema, você poderá ter código em algum lugar, seja em functions.php ou em um Plugin, que esteja alterando a funcionalidade da tag <!--more--> .

Para testar um problema relacionado ao plug-in, desative todos os plug-ins e mude para o tema padrão (atualmente: Twenty Twelve) e verifique se a tag <!--more--> está funcionando corretamente. Se ele funcionar corretamente, reative seus Plugins um a um. Se a tag <!--more--> ainda funcionar corretamente com todos os plug-ins ativos, o problema estará em algum lugar do seu tema.

O próximo passo é descartar o seu arquivo de modelo. Se você seguiu as etapas acima, renomeie home.php as home.php.old para que o WordPress volte para index.php para renderizar o Índice de postagens do blog. Em seguida, verifique se a tag <!--more--> está funcionando corretamente.

Se fizer , o problema é o seu modelo. Se não , o problema está em algum lugar em functions.php .

    
por Chip Bennett 19.12.2012 / 22:13