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