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

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

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

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

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

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии