Найти тему
WordPress_ru

Как в WordPress ограничить количество символов в заголовках постов

WordPress по умолчанию практически не ограничивает длину заголовка H1 записи или страницы.* С одной стороны — это позволяет владельцу ресурса настроить систему на свое усмотрение, но с другой — может вызвать сразу несколько проблем.

Как задать свои собственные ограничения на количество слов или символов в заголовке — разберемся сегодня.

Недостатки нелимитированного заголовка

У неограниченного по длине заголовка в WordPress есть свои минусы:

Длинное название статьи может плохо восприниматься пользователями, так как рассеивает внимание.

Поисковые системы не рекомендуют делать длинные заголовки. В сниппете поисковой выдачи они просто обрежутся, тем самым снизив CTR. Поэтому Google и Яндекс рекомендуют ограничивать длину H1 записей и страниц сайта 60-70 символами.

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

Ещё один существенный недостаток: в некоторых темах WordPress при использовании длинных заголовков начинает «плыть» верстка в карточках постов на главной странице, в рубриках, блоках похожих статей, виджетов свежих публикаций и т. д.

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

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

Как ограничить число символов в заголовках поста с помощью плагина

К сожалению, стандартных инструментов для установки подобного ограничения в WordPress нет.

Но есть стороннее решение — плагин Limit Post Titles. Несмотря на то что плагин не обновлялся более 7 лет, свои функции он выполняет четко, но только в классическом редакторе.

В блочном редакторе Gutenberg заданные ограничения не сработают, и запись можно будет легко опубликовать даже с очень длинным H1.

После установки и активации плагина перейдите в админ-панели в Настройки -> Limit Post Titles.

-2

На странице настроек нужно будет указать всего 2 параметра.

  • Character Limit — верхний предел на количество символов в заголовке;
  • Post Types — выбор типа записей из числа доступных на вашем сайте, для которых будет применяться это ограничение.

В большинстве случаев достаточно отметить значение post (запись) и/или page (страница).

Чтобы настройки вступили в силу, не забудьте нажать кнопку «Сохранить изменения».

Теперь перейдите в админке в Записи -> Добавить новую, где в заголовке введите больше 60 символов.

-3

В поле для ввода заголовка появится счетчик символов, а кнопка «Опубликовать» станет неактивной.

-4

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

В итоге черновик сохранится, но опубликовать его вы не сможете.

Ограничиваем длину заголовка записей с помощью php хука

О том, что такое хуки, мы уже рассказывали. Можете почитать ту статью.

Представленные самописные хуки работают как при публикации новой записи, так и при сохранении изменений после редактирования уже опубликованной. Но только в Classic Editor. Гутенберг им неподвластен.

До заданного количества символов

function limit_post_title(){
if (mb_strlen($_POST['post_title']) > 60 )
wp_die( 'Вы превысили разрешенную длину заголовка' );
}
add_action('publish_post', 'limit_post_title');

Текст сообщения и лимиты по длине заголовка можете задать свои.

-5

При использовании хука кнопка «Опубликовать» остается активной, но после нажатия на нее ограничение на количество слов срабатывает и выводится пустое окно с соответствующим сообщением.

До определенного числа слов

Способ ограничения заголовка записей по словам не самый лучший, так как он не всегда способен решить проблему с «поплывшим» дизайном вашего шаблона, ведь слова могут содержать разное количество букв. Но возможно кому-то нужен именно он.

function limit_word_title(){
$post_title = explode(" ", $_POST['post_title']);
if ( count($post_title) > 10 ) wp_die( 'Вы превысили допустимую длину заголовка.');
}
add_action('publish_post', 'limit_word_title', 0);

Результат работы данного хука аналогичен предыдущему — с появлением сообщения о превышении допустимой длины заголовка в отдельном пустом окне.

В любую из этих двух функций можете добавить свои условия для задания ограничений на длину заголовка отдельных страниц, записей (по ID) и других доступных таксономий.

* По умолчанию допустимая длина заголовка все-таки лимитирована типом данных TEXT в базе MySQL и составляет приблизительно 65 тысяч символов для текстов на латинице.