个性化阅读
专注于IT技术分析

要自定义[the_excerpt]长度形式wp

我正在尝试自定义帖子的摘录长度。我在function.php上使用此功能:

function get_excerpt(){
    $excerpt = get_the_content();
    $excerpt = preg_replace(" ([.*?])", '', $excerpt);
    $excerpt = strip_shortcodes($excerpt);
    $excerpt = strip_tags($excerpt);
    $excerpt = substr($excerpt, 0, 25);
    $excerpt = substr($excerpt, 0, strripos($excerpt, " "));
    $excerpt = trim(preg_replace( '/s+/', ' ', $excerpt));
    $excerpt = $excerpt.'... <a href="'.$permalink.'">[...]</a>';

    return $excerpt;
}

并在此标签上使用

<article class="secundary">
    <div class="mini">
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('large', array('class' => 'img-responsive')); ?></a>
    </div>

    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
    <p>por <span><?php the_author_posts_link(); ?></span> em <span><?php the_category(' '); ?></span> <?php the_tags('Tags: ', ', '); ?></p>
    <p><?php echo get_the_date(); ?></p>
    <p><?php get_excerpt(); ?></p>
</article>

有人可以帮助我吗?它没有用……为什么?

谢谢! 🙂


#1


你不必编写用于更改摘录长度的自定义函数。

你可以使用excerpt_length过滤器。你可以在functions.php文件中使用以下代码。

function mytheme_custom_excerpt_length( $length ) {
   return 25;
}
add_filter( 'excerpt_length', 'mytheme_custom_excerpt_length', 999 );

然后, 只需在帖子模板中使用默认的the_excerpt()标记即可。

这将显示25个字符的帖子摘录。有关自定义摘录的更多选项, 请查看以下链接。 https://developer.wordpress.org/reference/functions/the_excerpt/

希望这可以帮助。


#2


我会避免受到字符限制, 因为这会带来性能上的损失。相反, 要限制字数。将以下内容放入你的functions.php中:

function excerpt($limit) {
  $excerpt = explode(' ', get_the_excerpt(), $limit);
  if (count($excerpt)>=$limit) {
    array_pop($excerpt);
    $excerpt = implode(" ", $excerpt).'...';
  } else {
    $excerpt = implode(" ", $excerpt);
  } 
  $excerpt = preg_replace('`[[^]]*]`', '', $excerpt);
  return $excerpt;
}

现在, 无论你在模板文件中使用摘录的何处, 都可以按如下方式添加要显示的单词数(例如30):

echo excerpt(30) 
赞(0)
未经允许不得转载:srcmini » 要自定义[the_excerpt]长度形式wp

评论 抢沙发

评论前必须登录!