Хотите настроить форму длины [the_excerpt] wp - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь настроить длину выдержки в сообщениях. Я использую эту функцию на 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>

Кто-нибудь может мне помочь? Это не сработало ... почему?

Спасибо! :)

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Я бы избегал ограничения по символам, так как это дает удар по производительности. Вместо этого ограничьте словами. Добавьте в файл 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 голосов
/ 05 ноября 2018

Вам не нужно писать пользовательскую функцию для изменения длины выдержки.

Вы можете использовать фильтр 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/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...