Удалить базу категорий из URL категории WordPress - PullRequest
4 голосов
/ 14 апреля 2011

Я искал в Интернете решение этой проблемы, попробовал один или два плагина, чтобы удалить / category / из URL WordPress.

Хотя некоторые из этих плагинов хороши, категория ссылка по-прежнему отображает /category/.

Также я попытался вставить ./ в базовые параметры категории в настройках постоянных ссылок.

Кто-нибудь знает, как я могу сделать, как поиск и замена php или что-то в этом роде?

Ответы [ 3 ]

2 голосов
/ 11 июля 2014

Используя WordPress 3.9.1 (последняя версия на этот пост), я просто добавил одну строку в тему functions.php ...

$wp_rewrite->add_permastruct('category_base', '%category%');

Затем я открыл Настройки> Постоянные ссылки и нажал Сохранить . Похоже, что он очищает постоянный кеш и заставляет его работать.

2 голосов
/ 14 апреля 2011

http://wordpress.org/extend/plugins/wp-no-category-base/ и это не изменяет постоянные ссылки, поэтому удаление его без проблем восстанавливает структуру.И вам не нужно изменять основные файлы.

1 голос
/ 10 июля 2012

Чистое решение:

add_filter('user_trailingslashit', 'remcat_function');
function remcat_function($link) {
    return str_replace("/category/", "/", $link);
}
add_action('init', 'remcat_flush_rules');
function remcat_flush_rules() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}
add_filter('generate_rewrite_rules', 'remcat_rewrite');
function remcat_rewrite($wp_rewrite) {
    $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
...