Slug WordPress

Оригинальное название: WordPress slug

Коротко

Короткое машинное имя объекта WordPress — записи, рубрики, метки, автора, типа записи — из латиницы, цифр и дефисов, по которому объект ищут в адресах и коде.

Что такое «Slug WordPress»

Слово пришло из газетного жаргона: так называли рабочее название материала в редакции. В WordPress slug есть почти у всего, что попадает в адрес или к чему обращаются из кода. У записи и страницы он хранится в поле post_name, у рубрики и метки — в таблице терминов, у пользователя — в поле user_nicename и превращается в адрес архива автора. Свой slug есть и у зарегистрированных типов записей и таксономий: от него зависят адреса вида /catalog/….

Практическую сторону — как подобрать и поменять адрес конкретной публикации — разбирает страница slug записи. Здесь — об общих правилах.

Как WordPress формирует slug

Из названия функция sanitize_title() делает безопасную строку: переводит в нижний регистр, убирает знаки препинания и HTML, заменяет пробелы дефисами. Из «Hello World!» получится hello-world. Кириллицу ядро по умолчанию оставляет как есть, и в адресе она кодируется в длинную цепочку вида %d0%bf%d1%80…. Поэтому на русскоязычных сайтах почти всегда ставят плагин транслитерации, например Cyr-To-Lat, — до наполнения сайта, а не после.

Slug не должен повторяться в своих рамках. Если такой уже занят, WordPress добавит к новому суффикс -2, -3. У рубрик повторы проверяются внутри одной таксономии.

Пример: поиск объекта по slug

В коде темы slug надёжнее ID: на тестовой и боевой копиях ID могут не совпадать, а slug одинаковый.

$term = get_term_by( 'slug', 'novosti', 'category' );
$page = get_page_by_path( 'o-kompanii/kontakty' );

$news = get_posts( [
    'category_name'  => 'novosti', // тоже slug
    'posts_per_page' => 5,
] );

Конфликты адресов

Поскольку разные объекты делят одно пространство адресов, бывают пересечения: страница /news/ и рубрика со slug news при некоторых настройках постоянных ссылок спорят за один адрес, и открывается не то. Похожая ловушка — slug типа записи, совпадающий с существующей страницей. Такие конфликты лучше разводить на этапе проектирования структуры.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение