我有一个url重写的问题。一个从wpadmin创建的页面,其标题假定配置文件和一个自定义模板被分配给配置文件页面。我为该网站使用了自定义的永久链接结构(/%postname%)。
现在我希望URL看起来像这样:
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');
?>
我没有找到任何解决办法。有人可以帮忙吗?
感谢
试试这个
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结构或添加新的重写规则时,WordPress数据库将需要用新的URL规则更新,这样它就会了解如何从给定的URL中搜索你的帖子。有时你会遇到更改URL结构和WordPress为你的帖子返回404页面的问题。这可能是因为重写规则没有正确刷新。
有几种方法可以刷新永久链接规则。首先,您可以导航到永久链接页面设置->永久链接并更改永久链接,单击保存按钮,然后将其更改回原来的状态。这将刷新您网站上的所有重写规则,并应显示您的自定义帖子类型。其次,您可以打开phpMyAdmin,导航到wp_options表,并从该表中删除重写规则记录。下一次WordPress加载时,它将检查该表中的重写规则。如果它们不存在,它将重新生成规则。
第三个选项是将函数flush_rewrite_rules()放在寄存器重写规则下。这将完全刷新重写规则,并修复重定向的任何问题。
flush_rewrite_rules();