【问题标题】:How to pass URL variables into a WordPress page如何将 URL 变量传递到 WordPress 页面
【发布时间】:2010-03-25 23:39:11
【问题描述】:

这里(一年多前)有人问过这个问题,但显然没有回答,而且 WordPress 一直在发展,所以现在也许有一个很好的解决方案。我想通过 url 将变量传递给 WordPress 页面(类似于 CodeIgniter uri helper 段)。

目前我可以做到这一点...

我的个人资料页面是: http://website.com/profile

我可以像这样传递一个变量: http://website.com/profile?username=johndoe

我想像这样传递变量: http://website.com/profile/johndoe 或者 http://website.com/profile/username/johndoe

必须有某种辅助函数,对吧?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    我发现了一种使用 PHP 和 WordPress 函数来实现这一点的临时方法。

    这是内幕。在您的模板代码中包含 $wp_query 全局变量,然后使用它的查询属性,它是一个数组。这些数组索引之一称为“页面名称”,它的作用是返回相关页面的请求 uri。所以假设你的 url 是 http://website.com/profile/johndoe 并且你的 WordPress 安装在你的 webroot 中,那么这段代码:

    global $wp_query;
    echo $wp_query->query['pagename'] 
    

    将推出“profile/johndoe”。

    但是,如果url是:http://website.com/cms/profile/johndoe这意味着你的WordPress安装在cms目录而不是webroot,上面的代码仍然会返回profile/johndoe,也就是说,它考虑到了两者之间的区别WordPress 地址和站点地址在设置面板中设置为。

    所以无论如何,好的部分是你可以把这个输出分成一个数组,像这样:

    $segments = array_explode('/', $wp_query->query['pagename']);
    

    我相信第一段(profile 在这种情况下将分配给数组的第一个索引,依此类推。)。

    无论如何,它不如 CodeIgniter 好,但它不需要太多的代码来完成它。

    【讨论】:

      【解决方案2】:

      假设您的 wp 安装使用永久链接,因此 .htaccess 功能,您应该在 .htaccess 文件的顶部放置以下内容:

      Options +FollowSymlinks
      RewriteEngine on
      RewriteRule ^profile/(.*)$ /profile?username=$1 [NC]
      

      【讨论】:

        【解决方案3】:

        附加到根文件夹中的 .htaccess 文件,例如

         RewriteRule ^profile/?([_0-9a-z-]+)?/?$ http://website.com/profile?username=$1 [R=301,L]
        

        在其他 RewriteRules 之后

        【讨论】:

        • 是的,这就是我在大多数其他论坛上发布的内容,我发现人们都在问同样的问题。但是,不幸的是,它显然对他们和我都没有用。我的 WordPress 永久链接结构是:/%year%/%monthnum%/%postname%/ WP 创建的 .htaccess 文件规则是: RewriteEngine On RewriteBase /learnwake.com/ RewriteCond %{REQUEST_FILENAME} ! -f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 /learnwake.com/index.php [L]
        • 哇,抱歉,代码混乱......换行符没有保留。
        猜你喜欢
        • 1970-01-01
        • 2011-07-24
        • 2017-01-07
        • 2013-09-14
        • 1970-01-01
        • 2021-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多