Как ограничить максимальную длину заголовков постов при их добавлении/редактировании через админку

Ограничение заголовков по длине имеет наибольшее значение, если они используются у вас в качестве содержимого тега <title>, особенно если вы не единственный автор на блоге.

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

По количеству символов

Все последующие сниппеты кода из этого поста можно вставлять в functions.php текущей темы.

function true_set_title_len(){
    if (mb_strlen($_POST['post_title']) > 70 ) //тут укажите максимальное число символов в заголовке
        wp_die( 'Вы превысили допустимую длину заголовка' );
}
 
add_action('publish_post', 'true_set_title_len');

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

сообщение об ошибке «Вы превысили допустимую длину заголовка»

Хочу предупредить — функция mb_strlen работает не на всех хостингах, вы можете использовать вместо неё strlen, но тогда будут баги с кириллицей.

По количеству слов

А ещё можно задать ограничение не в символах, а в словах, функцию str_word_count мне подчинить не удалось, но это тоже полностью рабочий вариант:

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

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

Если вам понадобятся ещё примеры, я могу расписать их в комментариях.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии 4

  • Алексей 23 июля 2015 #

    А как сделать для цитат такое же ограничение?

  • Антон 4 февраля 2016 #

    Добрый день.
    Спасибо за отличные гайды =)
    Подскажите пожалуйста, с недавнего времени при создании Записи, весь текст записи начал копироваться в её Заголовок, с чем это может быть связано и как это исправить?

    • Миша 5 февраля 2016 #

      Добрый день!
      Пожалуйста)

      Прежде всего вам нужно найти источник проблемы - попробуйте сменить тему или повыключать плагины по одному.

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

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, в случае несоблюдения этого условия в 99% случаях ваш коммент будет удалён, а автор заблокирован. Печалька.