Ещё один простой блог в интернете, одного из жителей Сызрани, который считает себя дизайнером, WEB-мастером и фотографом-любителем

просто блог

QR CODE для записиQR CODE для записи “Количество слов в the_excerpt”

Количество слов в the_excerpt

На просторах сети есть множество хаков по созданию своей функции the_excerpt() со своим ограничением на количество слов. По умолчанию в WordPress вывод анонса статьи ограничен 55 словами, однако разработчики предусмотрели возможность изменения количества слов в анонсе через фильтр, о котором мало кто знает — это excerpt_length.

Чтобы изменить количество слов в анонсе необходимо в файл functions.php написать следующие строки

function my_excerpt_length( $length ) {
	return 30; // Указываем количество слов
}
add_filter( 'excerpt_length', 'my_excerpt_length' );

После этого в шаблоне, который отвечает за вывод анонсов статей ищем функцию:

the_content(...);

и заменяем на

the_excerpt();

если конечно она уже не стоит.

Рубрики: WordPress | 15 комментариев
  1. Александр # link

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

  2. BaNru # link

    Александр, в шаблоне необходимо запись выводить через функцию the_excerpt();
    Добавил пояснения в статью.

  3. Bloger # link

    А как убрать квадратные скобки при выдаче?

  4. BaNru # link

    Bloger, для этого надо добавить очередную функцию с фильтром

    function new_excerpt_more( $more ) {
    	return 'То что желаешь';
    }
    add_filter('excerpt_more', 'new_excerpt_more');

    Так же можно вписать ссылку например

    function new_excerpt_more( $more ) {
    	return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Читать далее</a>';
    }
    add_filter( 'excerpt_more', 'new_excerpt_more' );
  5. Игорь # link

    Здравствуйте! Я если ситуация, что наоборот нужно убрать ограничение текста, потому что текст на главной странице, где необходимо показать текст целиком. И куда вносить изменения, если текст цитируется только в одном определенном шаблоне страницы «Alt_Homepage, w/ Background Image Slider»:

    foreach( $ids as $id ) {
    	$title = get_post_field('post_title', $id);
    	$meta = get_post_field('post_excerpt', $id);
    	$link = wp_get_attachment_url( $id );
    	$image  = wp_get_attachment_image( $id, "full");

    Заранее спасибо!

  6. BaNru # link

    Игорь, то что вам нужно делается в настройках -> чтение -> полный текст.
    К сожалению по вашему коду я подсказать не могу, ибо тут идет присвоение пользовательских переменных, а не вывод. Вывод этих переменных в другом месте, где-то чуть ниже.

    Вам лучше попробовать закрепить страницу. Вам ведь одну «новость» надо постоянно на главной?
    Для этого надо создать страницу в одноименном разделе («страницы») админки.
    Это обязательно, иначе ничего не получится.
    Затем перейти в настройки -> чтение -> Статическую страницу (выберите ниже) -> выбрать созданную страницу.

  7. Sergey # link

    Огромное спасибо! Обычно в нормальных шаблонах уже прописывается количество слов в excerpt. Сразу нашел function dynamicnews_excerpt_length($length) {
    return 60;
    }
    где 60 — это и есть искомое количество. И так на каждый блок, где выводится анонс статьи, можно задать свой excerpt_length

  8. Sergey # link

    Вопрос вдогонку: есть ли какая-нибудь возможность правки кода, чтобы выводились полноценные предложения, т.е. функция выводила весь текст до первой точки ??

  9. BaNru # link

    Ну на просторах сети наверняка есть и функции, и плагины.

    Разумеется можно самому написать, по принципу, как я описывал когда-то в статье Свои смайлы в теме.

    У меня в наличие нет.

  10. Gutaref # link

    как убрать в title Текст
    на картинке

  11. BaNru # link

    По картинкам не гадаю. Надо код данного места из шаблона.

  12. adrin # link

    Очень странно, но ничего она не обрезает у меня, более того, выводит больше 55.

  13. BaNru # link

    Работает. Только что проверил на WordPress 4.3.1.

  14. Artem # link

    Добрый день! У меня все получилось, однако столкнулся с трудностями:
    1. При попытке все вернуть назад, все страницы кроме главной отказались открываться, загружается только шапка.
    2. На все других страницах сбилось оформление, все стало сплошным текстом, без абзацев и т.д. Плюс не выводятся картинки.

  15. BaNru # link

    Извиняюсь, что не ответил ранее, уведомления почему-то не приходили.

    Вероятнее всего вы допустили ошибку где-то, когда возвращали всё назад. Даже просто могли забыть поставить точку с запятой в конце строки.

    Узнать что за ошибка можно или в лог файлах или включив отображение этих ошибок, изменив wp-config.php
    Добавить в начале (после <?) ini_set(‘display_errors’, 1); и изменить в строке define(‘WP_DEBUG’, true); (false заменить на true).
    После этого можно будет точнее сказать в чём проблема.

Оставить комментарий

В блоге включена ручная модерация комментариев. Нет смысла повторно отправлять комментарий.
Поля отмеченный звездочкой * обязательны к заполнению

Перед отправкой формы: