2010-03-25 90 views
0

这里已经提到了这个问题(一年前),但显然没有回答,而且WordPress一直在不断发展,所以现在可能是一个很好的解决方案。我想通过url将变量传递给一个WordPress页面(类似于CodeIgniter的uri帮助程序段)。如何将URL变量传递到WordPress页面

目前我能做到这一点...

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

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

我要传递的变量在这样: http://website.com/profile/johndoehttp://website.com/profile/username/johndoe

必须有某种辅助功能,对吧?

回答

0

假设你的WP安装使用永久链接,这样的.htaccess功能,你应该把你的.htaccess的顶层文件如下:

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

404错误,如果我尝试website.com/profile/johndoe – 2010-03-26 00:04:11

0

追加到根文件夹的东西.htaccess文件像

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

其他的RewriteRules后

+0

是的,这是什么已发布在大多数其他论坛,我发现人们问同一个问题。但是,不幸的是,它显然不适合他们,也不适合我。 我的WordPress的永久链接结构是: /%,比去年%/%monthnum%/%postname%/ 这WP创建.htaccess文件规则是: RewriteEngine叙述在 RewriteBase/learnwake。 RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d RewriteRule。 /learnwake.com/index.php [L] 2010-03-25 23:52:28

+0

哇,对不起,代码混乱...换行符没有保存。 – 2010-03-25 23:53:13

0

我发现有点用PHP和WordPress的功能,这样的化妆转变方式。

这里是内幕。在你的模板代码中包含$ wp_query全局变量,然后使用它的查询属性,这是一个数组。其中一个数组索引称为'pagename',它所做的是返回有问题页面的请求URI。因此,假设您的网址是http://website.com/profile/johndoe和你的WordPress安装在你的根目录,然后此代码:

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

将产出影响“的个人资料/ johndoe的”。

但是,如果网址是:http://website.com/cms/profile/johndoe这意味着你的WordPress在cms目录,而不是根目录安装,上面的代码仍然会返回profile/johndoe,这意味着,它考虑到什么WordPress的ADRESS和网站之间的区别地址在设置面板中设置为。

所以不管怎么说,很大一部分是谓你可以把这个输出分成数组,像这样:

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

我相信,在这种情况下,第一段(profile将是分配给第一个指数数组等等)。

不管怎么说,它不如CodeIgniter好,但它并不需要太多的代码去做,它的确有用。