Как программно удалить категорию из фрагмента категории сообщения в WordPress

В WordPress категории записей играют важную роль в организации и классификации контента. По умолчанию ярлык категории включается в структуру URL-адресов сообщений, что помогает в SEO и улучшает взаимодействие с пользователем. Однако в некоторых случаях вам может потребоваться программно удалить ярлык категории из URL-адреса публикации. В этой статье мы рассмотрим несколько методов достижения этой цели и предоставим примеры кода для каждого подхода.

Метод 1: использование плагина
Самый простой способ удалить ярлык категории из URL-адресов публикаций в WordPress — использовать плагин. Например, плагин «Permalink Manager Lite» позволяет вам настроить структуру URL-адресов ваших сообщений и удалить базу категорий. Вот как это можно сделать:

  1. Установите и активируйте плагин Permalink Manager Lite из каталога плагинов WordPress.
  2. Перейдите в «Настройки» → «Постоянные ссылки» на панели управления WordPress.
  3. На вкладке «Необязательно» найдите поле «База категорий».
  4. Очистите поле или введите собственную базу данных по вашему выбору (например, «/blog/»).
  5. Сохраните изменения, и ярлык категории будет удален из 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-адресов публикаций.