我有一个url重写问题。从wp-admin创建的页面,其中标题假设配置文件和自定义模板被分配给配置文件页面。我为网站使用了自定义永久链接结构(/%postname%)。
现在我希望网址如下所示:
http://www.example.com/profile/abc2015
目前我正在传递像
这样的查询字符串http://www.example.com/profile/?pagename=profile&name=abc2015
我尝试在主题的函数.php中使用以下代码:
<?php
function custom_rewrite_rule()
{
add_rewrite_tag('%name%', '([^&]+)');
add_rewrite_rule('^profile/([^/]*)/?$','index.php?pagename=profile&name=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule');
?>
我找不到任何解决方案。有人可以帮忙吗?
谢谢
答案 0 :(得分:1)
试试这个
function create_new_url_querystring() {
add_rewrite_rule(
'^profile/([^/]*)$',
'index.php?pagename=profile&name=$matches[1]',
'top'
);
add_rewrite_tag('%name%','([^/]*)'); } add_action('init', 'create_new_url_querystring');
这未经过测试,但希望这会有所帮助。 另一个可能有助于你的工作的有用信息。
刷新重写规则
当您更改WordPress URL结构或添加新的重写规则时,需要使用新的URL规则更新WordPress数据库,以便了解如何从给定的URL搜索您的帖子。 有时您会遇到更改URL结构的问题,而WordPress会为您的帖子返回404页面。这可能是因为重写规则没有正确刷新。
有几种方法可以刷新固定链接规则。 首先,您可以导航到永久链接页面设置 - &gt;固定链接并更改固定链接单击“保存”按钮,然后将其更改回原来的状态。这将刷新您网站上的所有重写规则,并且应显示您的自定义帖子类型。 其次,您可以打开phpMyAdmin,导航到wp_options表并从该表中删除重写规则记录。下次加载WordPress时,如果它们不在那里,将检查此表中的重写规则,然后它将重新生成规则。
第三个选项是将函数flush_rewrite_rules()置于寄存器重写规则之下。这将完全刷新重写规则并修复重定向的任何问题。
flush_rewrite_rules();