Wordpress 将 URL 中的额外变量作为 slug 传递

问题描述 投票:0回答:1

嗨,我想创建页面,在其中可以显示所有类别树,然后单击它们显示该类别的子树。

我有作为短代码工作的功能,我使用查询字符串来传递子slug,但我想将其用作URL而不是查询字符串,我已经厌倦了很多像add_rewrite_rule()这样的事情,但它没有帮助。

我添加排序代码的主页是 - https://sute.com/systems/

我将 child 传递为 https://sute.com/systems/?machine=acer 其中 machine 是值为 acer 的查询变量。

我想要像 https://sute.com/systems/machine/acer 这样的 URL,这样对 SEO 更友好。

我尝试使用重写规则,但它仅适用于主页https://sute.com/systems/,当我单击转到 URL 的 chil slug 时 - https://sute.com/systems/machine /acer 显示找不到页面。

请任何人有任何想法如何共谋。

查询字符串对 SEO 不友好,因此对于搜索引擎来说,任何使用查询字符串的页面都是相同的。我的主页是系统的,但我想使用 slug 创建每个子页面 URL,以便我可以在搜索引擎上提交它。

我想要像 https://sute.com/systems/machine/acer 这样的 URL,这样对 SEO 更友好。

我尝试使用重写规则,但它仅适用于主页https://sute.com/systems/,当我单击转到 URL 的 chil slug 时 - https://sute.com/systems/machine /acer 显示找不到页面。

请任何人有任何想法如何共谋。

wordpress url query-string slug url-parameters
1个回答
0
投票

要在页面 URL 中传递额外变量,请尝试以下代码:

第 1 步: 使用以下代码添加自定义重写规则。

function gs_page_rewrite_rules() {
    add_rewrite_rule(
        '^systems/machine/([^/]*)/?$',  // Custom URL structure
        'index.php?pagename=systems&m_var=$matches[1]',  // Query vars to pass
        'top'
    );
}
add_action('init', 'gs_page_rewrite_rules');

第 2 步: 使用以下代码向 WordPress 注册额外变量。

function gs_query_vars($vars) {
    $vars[] = 'm_var';  // Register custom query variable
    return $vars;
}
add_filter('query_vars', 'gs_query_vars');

第 3 步: 访问

Settings > Permalinks
并单击保存更改

第 4 步: 清除缓存

第 5 步: 打开 https://sute.com/systems/machine/acer URL

**注意:在子主题的functions.php文件中添加步骤1和2代码

© www.soinside.com 2019 - 2024. All rights reserved.