页面的Wordpress url重写问题具有自定义模板


Wordpress url rewrite issue for page has custom template

我有一个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();