任何人都可以帮助我理解wordpress中是否有任何可用于将动态查询字符串转换为静态的标准函数或进程,就像wordpress在wp-admin中设置永久链接时将动态网址转换为SEF网址一样。
我正在开发一个基于woocommerce的插件,为用户提供动态链接。这导致另一个页面,其中使用$ _GET提取查询字符串。
现在我希望在url中使用动态格式但静态/ SEFformat来实现这一点。
更新我的问题:
以下是我在插件中尝试的代码,但无法看到更改网址格式。
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);
例如,如果网址生成为
http://example.com/conversations/?cid=2234
我希望通过wordpress转换为
http://example.com/conversations/2234
希望这有助于理解我一直在尝试的内容。感谢
答案 0 :(得分:1)
您的规则缺少最终?
以使最后一个斜杠可选。添加问号后,您的重定向应该有效。函数调用如下所示:
add_rewrite_rule('^conversations/([0-9]+)/?', 'index.php?page_id=3242&cid=$matches[1]', 'top');
此外,每次以编程方式在Wordpress中创建新的重写规则,使用重写函数或添加自定义帖子类型时,您需要刷新永久链接。要执行此操作,只需转到WP管理员中的永久链接设置页面,然后点击“保存”按钮。这足以刷新规则。