Existem três filtros que controlam o link "mais", dependendo de qual função / Tag de modelo está em uso. O ruim é que eles estão interceptando um ao outro. O bom é que você pode simplesmente modificar a saída do filtro usando current_filter()
para recuperar o nome do filtro atualmente anexado e modificar a saída.
Então nós temos o 'excerpt_length'
-filter para limitar o tamanho do trecho. Este não nos permite adicionar um permalink, mas nos ajuda em combinação com os outros filtros. Veja o plugin 2 nd .
O plugin permalink-more
Este plugin adiciona o permalink ao conteúdo ou trecho - dependendo do que é exibido. Ele também redefine o excerpt_more
-filter para produzir nada , portanto, não está interferindo nos outros filtros.
<?php
/** Plugin Name: (#69204) »kaiser« Adds a permalink to the excerpt & content */
/**
* Alters the display of the "more" link
*
* @param string $permalink
* @param string $text
* @return string $html
*/
function wpse69204_more_link( $output )
{
$html .= '<span class="post-more"> ';
$html .= sprintf(
'<a href="%s#more-%s" class="more-link" title="read more" >'
,get_permalink()
,get_the_ID()
);
$html .= '</a></span>';
// Override 'excerpt_more'
if ( 'excerpt_more' === current_filter() )
return;
// Strip the content for the 'get_the_excerpt' filter.
$output = wp_trim_words( $output, 300 );
// Append for the excerpt
if ( 'get_the_excerpt' === current_filter() )
return $output.$html;
// The permalink for the 'the_content_more_link'-filter.
return $html;
}
# "More" link for the content
add_filter( 'the_content_more_link', 'wpse69204_more_link' );
add_filter( 'get_the_excerpt', 'wpse69204_more_link' );
add_filter( 'excerpt_more', 'wpse69204_more_link' );
O plug-in de trechos com mais comprimento
Se você quiser apenas modificar o comprimento do trecho, pode usar uma configuração de filtro muito mais simples. O plugin a seguir faz um trabalho muito bacana. Reduz o conteúdo (estamos no loop e temos dados de post para acessar) para 300 palavras. Na próxima etapa, conta as letras de cada palavra. Então simplesmente retorna este número (dinamicamente atribuído).
<?php
/** Plugin Name: (#69204) »kaiser« Limit excerpt length by word count */
function wpse69204_excerpt_length( $length )
{
$to_count = array_splice( get_the_content(), 300 );
$i = 0;
foreach ( $to_count as $word )
{
$i += strlen( $word );
}
return $i;
}
add_filter( 'excerpt_length', 'wpse69204_excerpt_length' );
Notas
- Ambos os plugins são »zero configuração«. Basta fazer upload, ativar, pronto.
- Você precisará usar
the_content()
ou the_excerpt()
em seu tema para usar esses plug-ins.