这是 WordPress 固有的限制吗?例如,当我们有一个具有三级层次结构的 URL 结构时,是否无法删除第一级?目前,我必须根据需要将永久链接结构维护为“/%postname%/”。具体来说,我有一个名为“锦标赛名称”的父页面,包含子孙。当尝试访问不包含祖级 URL slug 但包含父级 URL slug 的子页面 URL 时,它会自动重定向以包含祖级 URL slug。
例如:我需要使用 URL http://local.test.com/team-name 访问现有页面 http://local.test.com/tournament-name/team-name/players/ /players/ - 没有“锦标赛名称”URL 关键字。
此更改是为了搜索引擎优化。
我可以删除
tournament-name
并将其重定向到 http://local.test.com/team-name/players/。但 WordPress 会自动将其重定向回 http://local.test.com/tournament-name/team-name/players/ - 导致无限循环。另外,我需要确保页面 http://local.test.com/tournament-name/team-name/players/ 显示与 http://local.test.com/tournament-name/ 相同的内容球队名称/球员/
我尝试过的代码如下
function custom_remove_parent_page_slug() {
// List of parent pages for which you want to remove the slug
$parent_pages = array(
'tournament-name'
);
global $wp;
$requested_url = home_url( $wp->request );
foreach ( $parent_pages as $parent_page ) {
$parent_page_url = home_url( $parent_page );
// Check if the requested URL starts with the parent page URL
if ( strpos( $requested_url, $parent_page_url ) === 0 ) {
// Remove the parent page slug from the URL
$child_page_url = str_replace( $parent_page_url, home_url(), $requested_url );
// Check if the child page URL is different from the requested URL
if ( $child_page_url !== $requested_url ) {
// Redirect with a 301 status code
wp_redirect( $child_page_url, 301 );
exit;
}
}
}
}
add_action( 'parse_request', 'custom_remove_parent_page_slug' );
请帮助我。预先感谢。
您是否尝试过查看设置中的永久链接结构?