【问题标题】:Wordpress url rewrite issue for page has custom template页面的 Wordpress url 重写问题具有自定义模板
【发布时间】:2015-06-14 08:42:00
【问题描述】:

我有一个 url 重写的问题。从 wp-admin 创建的页面,其标题假设配置文件和自定义模板分配给配置文件页面。我为网站使用了自定义永久链接结构(/%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'); 
    ?>

我还没有找到任何解决方案。有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: php wordpress .htaccess


    【解决方案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 结构或添加新的重写规则时,WordPress 数据库将需要使用新的 URL 规则进行更新,以便了解如何从给定的 URL 搜索您的帖子。 有时您会遇到更改 URL 结构和 WordPress 为您的帖子返回 404 页面的问题。这可能是因为重写规则没有正确刷新。

    有几种方法可以刷新永久链接规则。 首先,您可以导航到永久链接页面 Settings -> Permalinks 并更改永久链接,单击保存按钮,然后将其更改回原来的方式。这将刷新您网站上的所有重写规则,并且应该显示您的自定义帖子类型。 其次,您可以打开 phpMyAdmin,导航到 wp_options 表并从该表中删除重写规则记录。下次 WordPress 加载时,它将检查此表中的重写规则,如果它们不存在,那么它将重新生成规则。

    第三个选项是将函数flush_rewrite_rules()置于寄存器重写规则之下。这将完全刷新重写规则并修复任何重定向问题。

    flush_rewrite_rules();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多