На wordpress.stackexchange.com нет ответа на мой вопрос, поэтому я решил попробовать здесь.
На веб-сайте WordPress, над которым я работаю, я использую категории и подкатегории, поэтому ссылки для сообщений: category-level-1/category-level-2/post-name
и category-level-1/category-level-2/category-level-3/post-name
Все сообщения назначаются только категориям последнего уровня.
Если я устанавливаю структуру постоянных ссылок как /%category%/%postname%
, а затем go в интерфейс к странице категории первого уровня, я получаю то, что я ожидаю. Но когда я go перехожу на страницу с категорией второго уровня (независимо от того, имеет она категорию третьего уровня или нет), выполняется перенаправление, и я получаю страницу с одним постом из категории третьего уровня.
Если Я установил пользовательскую структуру постоянных ссылок как /%category%/%category%/%category%/%postname%
(три - это максимальное количество уровней категорий на моем веб-сайте), а затем go на странице категорий любого уровня, я получаю то, что ожидаю. Но названия категорий дублируются в ссылках поста три раза.
Если я удаляю дубликаты, добавляя в функцию. php код вроде:
function custom_post_link($link, $post) {
$link_parts = explode('/', $link);
$link_parts = array_unique($link_parts);
$link = implode('/', $link_parts);
return $link;
}
add_filter('post_link', 'custom_post_link', 10, 2);
ссылки на посты становятся нормальными , но работают только для постов, которые относятся к категории третьего уровня. Для других сообщений я получаю сообщение об ошибке 404.
Как решить проблему?