一尘不染

Wordpress中的多个摘录长度

php

如标题中所述,我正在WordPress中寻找多个摘录长度。

我了解您可以在functions.php中执行此操作:

function twentyten_excerpt_length( $length ) {
    return 15;
}
add_filter( 'excerpt_length', 'twentyten_excerpt_length' );

我想知道的是如何有多个这样的函数,每个函数返回不同的数值,这样我就可以得到侧边栏循环的简短摘录,特色循环的较长摘录和主要文章的最长摘录。

在模板中使用以下内容:

<?php the_excerpt('length-short') ?>
<?php the_excerpt('length-medium') ?>
<?php the_excerpt('length-long') ?>

干杯,戴夫


阅读 260

收藏
2020-05-29

共1个答案

一尘不染

怎么样…

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;
}

function content($limit) {
    $content = explode(' ', get_the_content(), $limit);

    if (count($content) >= $limit) {
        array_pop($content);
        $content = implode(" ", $content) . '...';
    } else {
        $content = implode(" ", $content);
    }

    $content = preg_replace('/\[.+\]/','', $content);
    $content = apply_filters('the_content', $content); 
    $content = str_replace(']]>', ']]&gt;', $content);

    return $content;
}

然后在您的模板代码中使用。

<?php echo excerpt(25); ?>
2020-05-29