Các câu hỏi tương tự đã được hỏi trước đây, nhưng không có câu trả lời nào phù hợp.
Tôi có: site.com/parent-page/child-page
và muốn có:site.com/child-page
Vì vậy, tôi muốn độc quyền có permalinks với độ sâu 1, không sử dụng menu tùy chỉnh nhưng vẫn "phân cấp" các trang của tôi trong chế độ xem tất cả các trang và với phụ huynh / thứ tự trong các thuộc tính trang.
Giải pháp cũng cần hoạt động tự động, do đó, không thay đổi permalinks trên mỗi trang với plugin "Permalinks tùy chỉnh".
Đây là những gì tôi cần, và tôi chắc chắn rằng có thể với một vài dòng mã trong functions.php
đó, tôi đã tìm thấy ở nơi khác nhưng chỉ cho các bài đăng để xóa danh mục, nhưng không hoạt động cho các trang để loại bỏ cha mẹ.
Đây là mã như vậy, mà có lẽ có thể được thay đổi để làm việc cho các trang ?
add_filter( 'post_link', 'remove_parent_cats_from_link', 10, 3 );
function remove_parent_cats_from_link( $permalink, $post, $leavename ) {
$cats = get_the_category( $post->ID );
if ( $cats ) {
// Make sure we use the same start cat as the permalink generator
usort( $cats, '_usort_terms_by_ID' ); // order by ID
$category = $cats[0]->slug;
if ( $parent = $cats[0]->parent ) {
// If there are parent categories, collect them and replace them in the link
$parentcats = get_category_parents( $parent, false, '/', true );
// str_replace() is not the best solution if you can have duplicates:
// example.com/luxemburg/luxemburg/ will be stripped down to example.com/
// But if you don't expect that, it should work
$permalink = str_replace( $parentcats, '', $permalink );
}
}
return $permalink;
}