Как автоматически удалять короткие слова из ссылки на пост

Часто ссылка на пост состоит из его названия (slug). Некоторые считают, что использование слага в ссылке полезно сказывается на его индексации. Лично я никакой взаимосвязи не обнаружил, сколько бы не экспериментировал ЧПУ, но раз кто-то это использует, то пусть так считается. Однако если в названии поста используется много союзов и коротких слов, то оно растягивается на непозволительную длину. Например, название “И как бы нам удалить короткие слова из названия поста” выльется в “site.ru/category/I-kak-by-nam-udalit-korotkie-slova-iz-nazvania-posta“. Союзы и междометия не несут никакой смысловой нагрузки в образованной ссылке, поэтому их можно сократить, существенно укоротив ссылку до “site.ru/category/udalit-korotkie-slova-nazvania-posta“.

Это можно делать автоматически, если использовать следующий код, вставив его в файл functions.php:

add_filter('sanitize_title', 'remove_short_words');
function remove_short_words($slug) {
    if (!is_admin()) return $slug;
    $slug = explode('-', $slug);
    foreach ($slug as $k => $word) {
        if (strlen($word) < 3) {
            unset($slug[$k]);
        }
    }
    return implode('-', $slug);
}

Этот фильтр сокращает все слова, которые меньше 3 символов.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

1 Kомментарий

  1. Из-за данного кода пропало отображение виджетов в сайдбаре в админке. То есть реально они есть (на страницах сайта продолжают отображаться), но стали невидимыми в wp-admin/widgets.php

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

Ваш электронный адрес не будет опубликован.


*