В WordPress категории записей играют важную роль в организации и классификации контента. По умолчанию ярлык категории включается в структуру URL-адресов сообщений, что помогает в SEO и улучшает взаимодействие с пользователем. Однако в некоторых случаях вам может потребоваться программно удалить ярлык категории из URL-адреса публикации. В этой статье мы рассмотрим несколько методов достижения этой цели и предоставим примеры кода для каждого подхода.
Метод 1: использование плагина
Самый простой способ удалить ярлык категории из URL-адресов публикаций в WordPress — использовать плагин. Например, плагин «Permalink Manager Lite» позволяет вам настроить структуру URL-адресов ваших сообщений и удалить базу категорий. Вот как это можно сделать:
- Установите и активируйте плагин Permalink Manager Lite из каталога плагинов WordPress.
- Перейдите в «Настройки» → «Постоянные ссылки» на панели управления WordPress.
- На вкладке «Необязательно» найдите поле «База категорий».
- Очистите поле или введите собственную базу данных по вашему выбору (например, «/blog/»).
- Сохраните изменения, и ярлык категории будет удален из URL-адресов ваших публикаций.
Метод 2: изменение базы категорий в Functions.php
Если вы предпочитаете решение на основе кода, вы можете изменить базу категорий, добавив собственный код в файл functions.phpвашей темы. Вот пример:
function remove_category_slug($category_rewrite) {
$category_rewrite['slug'] = '';
return $category_rewrite;
}
add_filter('category_rewrite_rules', 'remove_category_slug');
function change_category_link($link, $term, $taxonomy) {
if ($taxonomy !== 'category')
return $link;
return str_replace('/category/', '/', $link);
}
add_filter('term_link', 'change_category_link', 10, 3);
Этот фрагмент кода удаляет фрагмент категории из правил перезаписи категорий и изменяет структуру ссылок на категории.
Метод 3: использование правил перезаписи
Другой подход — использовать правила перезаписи WordPress для удаления ярлыка категории. Вот пример:
function custom_rewrite_rule() {
add_rewrite_rule('^([^/]*)/([^/]*)/?', 'index.php?category_name=$matches[2]', 'top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);
function change_category_link_structure($permalink, $post) {
$category = get_the_category($post->ID);
if (isset($category[0])) {
$permalink = str_replace('/' . $category[0]->category_nicename . '/', '/', $permalink);
}
return $permalink;
}
add_filter('post_link', 'change_category_link_structure', 10, 2);
Этот метод включает в себя добавление специального правила перезаписи и изменение структуры ссылки на публикацию, чтобы исключить ярлык категории.
В этой статье мы рассмотрели три метода программного удаления ярлыка категории из URL-адресов публикаций в WordPress. Первый метод включал использование плагина Permalink Manager Lite, который предоставляет простой в использовании интерфейс для настройки структуры URL-адресов. Второй метод продемонстрировал, как изменить базу категорий, добавив код в файл functions.php. Наконец, третий метод использовал правила перезаписи для достижения желаемой структуры URL. Выберите метод, который лучше всего соответствует вашим потребностям, и внедрите его на своем веб-сайте WordPress, чтобы удалить ярлык категории из URL-адресов публикаций.