Убрать вложенность страниц или категорий в URL
Данный сниппет убирает вложенность урлов для дочерних страниц. С точки зрения структуры страницы остаются дочерними - и это можно использовать - для вывода дерева меню, например.
Но с точки зрения URL - получается плоская структура, подходящая для определенных SEO-задач
Было: /родительская-страница/страница
Стало: /страница
function remove_parent_slug($post_link, $post) {
if ($post->post_type == 'page') {
$post_link = home_url('/' . $post->post_name . '/');
}
return $post_link;
}
add_filter('page_link', 'remove_parent_slug', 10, 2);
function update_page_slug($post_id) {
$post = get_post($post_id);
if ($post->post_type == 'page' && $post->post_parent) {
wp_update_post(array(
'ID' => $post_id,
'post_name' => wp_unique_post_slug($post->post_name, $post_id, $post->post_status, $post->post_type, $post->post_parent)
));
}
}
add_action('save_post', 'update_page_slug');