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

Ограничение заголовков по длине имеет наибольшее значение, если они используются у вас в качестве содержимого тега <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);

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

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

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

Смотрите также