wordpress - 将 url 查询字符串转换为静态

wordpress - Convert url query string to static

任何人都可以帮助我了解 wordpress 中是否有任何标准函数或过程可用于将动态查询字符串转换为静态,就像 wordpress 将动态 urls 转换为 SEF urls 关于在 wp-admin.

中设置 permalinks

我正在开发一个基于 woocommerce 的插件,用户将获得动态 link。这将导致使用 $_GET.

提取查询字符串的另一个页面

现在我希望在 url 但 static/SEFformat.

中不使用动态格式来实现这一点

更新我的问题:

下面是我在我的插件中尝试的代码,但无法看到 url 格式的变化。

function dashboard_messages_url_rewrite() {
global $wp_rewrite;
add_rewrite_tag('%cid%', '([^&]+)');
add_rewrite_rule('^conversations/([0-9]+)/', 'index.php?page_id=3242&cid=$matches[1]', 'top');

$wp_rewrite->flush_rules(true);
}
add_action('init', 'dashboard_messages_url_rewrite', 10, 0);

例如,如果 url 生成为

http://example.com/conversations/?cid=2234

我想让它通过wordpress转换如下

http://example.com/conversations/2234

希望这有助于理解我一直在尝试的内容。谢谢

您的规则缺少最后一个 ? 以使最后一个斜线可选。添加问号后,您的重定向应该可以工作。函数调用将如下所示:

add_rewrite_rule('^conversations/([0-9]+)/?', 'index.php?page_id=3242&cid=$matches[1]', 'top');

此外,例如,每次您在 Wordpress 中以编程方式创建新的重写规则、使用重写函数或添加自定义 post 类型时,您都需要刷新永久链接。为此,只需转到 WP 管理员中的永久链接设置页面,然后点击保存按钮。这足以刷新规则。