返回
WordPress 中如何移除顶级 URL slug 而不会影响子页面访问?
php
2024-03-08 23:45:13
WordPress 中移除顶级 URL slug 而不影响子页面访问
问题
在 WordPress 中,是否可以移除顶级 URL slug 而不会影响子页面访问?例如,当我们拥有三层结构的 URL 时,是否可能移除第一层?
对于具有三层结构 URL 的网站,顶级 URL slug 通常会包含父页面的名称。然而,有时需要移除顶级 slug 以改善搜索引擎优化或实现其他目标。
解决方案
要移除顶级 URL slug 并保持子页面可访问,需要使用自定义代码修改 WordPress 的重写规则。以下是详细步骤:
- 创建一个函数
custom_remove_parent_page_slug
。 - 确定要移除 slug 的父页面列表。
- 检查请求的 URL 是否以父页面 URL 开头。
- 如果是,则从 URL 中移除父页面 slug。
- 获取父页面的 ID。
- 添加一条新的重写规则,将子页面 URL 映射到父页面的 ID。
以下是代码示例:
function custom_remove_parent_page_slug() {
// 想要移除 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 );
// 检查请求的 URL 是否以父页面 URL 开头
if ( strpos( $requested_url, $parent_page_url ) === 0 ) {
// 从 URL 中移除父页面 slug
$child_page_url = str_replace( $parent_page_url, home_url(), $requested_url );
// 获取父页面 ID
$parent_page_id = get_page_by_path( $parent_page );
// 添加新的重写规则
add_rewrite_rule( '^' . $child_page_url . '】
请根据上面【】里的内容总结成一篇文章。作为一位经验丰富的程序员和技术作家,您需要撰写一篇100%原创、SEO优化的博客文章,用来记录问题,解决问题的方法,或者相关的内容分享。文章应包含标题和子标题,并围绕提供的主题展开。请用自己的话来写作,确保内容的原创性和独特性。在写作时,请注意文章的复杂性和连贯性,确保内容既深入又具有相关性。文章应使用详尽的段落来吸引读者,并采用对话式的写作风格。这包括使用非正式的语气,运用第一人称和第二人称代词,保持语言简洁有力,使用主动语态,以及适当运用修辞问题、比喻和隐喻。文章最后应以结论段落和5个常见问题解答结束。请加粗文章的标题和所有子标题,并为H标签使用适当的格式。
其他写作要求:
1.文章字数应在2000-4000字之间。
2.确保内容的原创性,避免抄袭或引用他人的作品。
3.使用自然、地道的语言风格,表达观点和情感。
4.保持文章的逻辑性和一致性,避免矛盾或不准确的信息。
5.避免内容的重复和无关性,确保语言的多样性和相关性。
6.在全面性和创造性之间取得平衡,提供有用且有趣的细节和例子,但不要过度夸张或虚构。
7.定义文章的目标读者,是专业人士、业余爱好者还是普通大众?这将指导文章的语言风格和深度。
8.鼓励使用真实世界的例子和案例来举例说明,使文章更加生动和有说服力。
9.需要包含相关的图表、代码片段或视觉元素来丰富文章内容。
10.以专业,客观,解决问题的方式来写文章,不要过分表达感情,着重用来解决问题。
11.不要使用ai管用的写作手法,避免“前言”,“引言”,“首先”,“接下来”,“最后”, “在xxx领域”, “结论”, “结语”,“总结”,“本文”,“深入”,“讨论”,等等ai写作常出现的词语, 'index.php?page_id=' . $parent_page_id, 'top' );
}
}
}
add_action( 'init', 'custom_remove_parent_page_slug' );
注意事项
- 确保启用自定义重写规则。
- 此代码仅适用于所列的父页面。
- 在进行任何更改之前,请备份网站数据库。
结论
通过使用自定义代码修改重写规则,可以移除 WordPress 中的顶级 URL slug 而不影响子页面访问。这可以提高搜索引擎优化或实现其他自定义目标。
常见问题解答
-
移除顶级 slug 后,子页面 URL 会发生什么变化?
- 子页面 URL 将保持不变,但不会包含顶级 slug。
-
如果父页面更改了 slug,会发生什么?
- 如果父页面更改了 slug,需要更新自定义代码以反映新的 slug。
-
此方法是否适用于所有 WordPress 主题?
- 此方法适用于大多数 WordPress 主题,但可能需要针对特定主题进行一些调整。
-
是否可以移除多个顶级 slug?
- 是的,可以通过将要移除的 slug 添加到
$parent_pages
数组中来移除多个顶级 slug。
- 是的,可以通过将要移除的 slug 添加到
-
是否可以同时移除顶级和二级 slug?
- 是的,可以通过将要移除的 slug 添加到
$parent_pages
数组中来同时移除顶级和二级 slug。
- 是的,可以通过将要移除的 slug 添加到