Как изменить длину анонса поста в WordPress

По умолчанию в WordPress длина анонса статьи составляет 55 слов на вывод. Что довольно приемлемо для блога с обычным одноколоночным отображением постов. Но если вы меняете структуру на двухколоночную или просто возникает необходимость обрезать текст, то в данном обзоре узнаете, как это сделать.

Меняем длину анонса статьи вручную

Этот метод предполагает ручное редактирование файлов темы для изменения длины анонса статей там, где это необходимо. Это может включать в себя результаты поиска, категории, архивы и так далее. Другими словами, это означает, что нам нужно будет вручную открыть файл шаблона темы (например, index.php, category.php) и добавить код для вывода анонса статьи с ограниченным количеством слов.

Шаг-1: Откройте файл 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;
}

Шаг-2: Чтобы изменить длину анонса статьи, откройте файл, в котором нужно внести изменения. Например, давайте представим, что у нас есть файл с названием archive.php. Внутри этого файла найдите часть кода, которая выглядит как <?php the_content(); ?> или <?php the_excerpt(); ?>, и замените её на следующий код:

<?php echo excerpt(15); ?>

Число в скобках «15» означает количество слов анонса.

Автоматически изменяем длину анонса статьи WordPress

Для более удобного изменения длины анонса поста существует более автоматизированный метод. Для этого вам потребуется добавить всего одну строку кода в файл function.php и указать желаемое количество слов.

// Длина анонса
function ws_custom_excerpt_length( $length ) {
        return 5;
}
add_filter( 'excerpt_length', 'ws_custom_excerpt_length', 999 );

Если вам нужно изменить длину анонса только в определенной категории, в то время как на остальных страницах сайта она должна остаться неизменной, вы можете воспользоваться следующим кодом. Вам лишь потребуется изменить ID категорий на свои.

// Длина анонса
function ws_custom_excerpt_length($length) {
    $category_ids = array(14, 15, 3); // Здесь перечислите ID категорий, для которых вы хотите изменить длину анонсов
    if (in_category($category_ids)) {
        return 5; // Желаемая длина анонса для указанных категорий
    } else {
        return 20; // Длина анонса для всех остальных категорий
    }
}
add_filter('excerpt_length', 'ws_custom_excerpt_length', 999);

После этого вам останется только проверить результат и продолжить работу над вашим сайтом.

10 комментариев
  1. Подскажите как убрать текст «опубликовать» и «автор» и заменить его иконками ?

    Где нужно искать и что заменять ?

    1. Алексей, Да и черточки разделители типа «Текст | Текст» не могу найти и тоже их удалить, помогите пожалуйста

    1. Во многих темах он может быть переименен или концепция шаблоном построена по-другому. Ищите по классу элемента.

  2. Как задать шрифт Arial Regular? Применяю и он не работает, мне нужно что бы он был полужирный как у вас но не bold.

  3. Чего то функции какие то не понятные, зачем так усложнять? Не проще сделать так?

    function new_excerpt_length($length) { return 10; } add_filter('excerpt_length', 'new_excerpt_length');

    ❓ ❓ ❓

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *