Удаление родительской категории, но оставление дочерних категорий в постоянную ссылку Wordpress - PullRequest
2 голосов
/ 27 июня 2019

У меня был сайт со структурой URL-адресов, такой как

example.com / news / story-1
example.com/news/local/story-2
example.com/food/tacos / story-3

Теперь он перемещен в мультисайт, с вложенными папками сайта / news / и / food /.

В этих под-сайтах категория верхнего уровня / по умолчаниюявляется Новости или Еда, соответственно, заменяя Без рубрики.Поэтому, если постоянная ссылка установлена ​​на %category%/%postname%/, постоянная ссылка будет выглядеть как

example.com / news / news / local / story-title
example.com/food/food/tacos/story-title

Чтобы удалить категорию, которая является дубликатом подпапки сайта, я добавил это в functions.php:

add_filter( 'post_link', 'remove_parent_category', 10, 3 );
    function remove_parent_category( $permalink, $post, $leavename ) {
        $permalink_array = explode("/", $permalink);
        $clean_permalink = array_unique($permalink_array);
        $new_permalink = implode("/", $clean_permalink);
        return $new_permalink;
    }  

Это работает, возвращая мне

example.com/news/local/story-2
example.com/food/tacos/story-3

и возможность навигации по таким категориям, как

example.com / news /
example.com/news/local/
example.com/news/local/crime/
и т. Д.

Однако постов, которые находятся в категории верхнего уровня, теперь 404 (то естьследовало ожидать), потому что их URL теперь

example.com / news / story-1

(это то, что я хочу, но я не хочу, чтобы весь сайт был просто %postname%/, потому что вы теряете простую навигацию по категориям в виде дерева ссылок).

Исходя из того, что я собираю, я думаю, что мне нужно использовать pre_post_link или правило перезаписи для обработки этих постов верхнего уровня.как если бы моя структура постоянных ссылок была просто %postname%/, а не %category%/%postname%/, но вот где я застрял.

То, что я пробовал: я пробовал пару решений, плавающих здесь, среди прочегоВещи, которые я пытался изменить, но ссылки на посты с высшей категорией обнажились до сих пор 404 wordpress.stackexchange.com / a / 133587/170714

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...