在wordpress中传递变量

时间:2015-02-25 12:17:35

标签: wordpress url

我在wordpress网址中传递变量时遇到问题。当我将变量和值传递给url时,一切都很好 即。

mysite.com/product-part/?part=1/

但我想要的是变量传递如下:

mysite.com/product-part/1

在php中,将变量传递给url的常规方法是:

mysite.com/?id=1

在wordpress中,上面的内容如下:

mysite.com/1

我如何实现上述目标?

2 个答案:

答案 0 :(得分:1)

Rewrite API允许您在WordPress中添加创建自定义重写规则。你可以在" init"中调用add_rewrite_rule()。钩子并给它一个正则表达式来翻译成一个查询字符串。类似的东西:

function setup_rewrite_rules() {
    add_rewrite_rule('^store/([0-9A-Za-z]+)/([0-9]+)/?', 'index.php?product_slug=$matches[1]&part=$matches[2]', 'top');
}

add_action('init', 'setup_rewrite_rules');

请注意,该网址与现有产品网址并不完全匹配,因为您需要与此正则表达式匹配的内容。

您可能需要使用template_redirect处理程序来检测何时设置这些变量并显示正常的产品页面,因为您未使用该产品的正常固定链接。< / p>

答案 1 :(得分:0)

这是传递变量的非常非常糟糕的方法。 Wordpress使用&#34;重写&#34;用于确定要运行的查询的规则。这些&#34;永久链接&#34;例如,确定您要发布的帖子。在您的示例中,使用诸如&#34; 1&#34;之类的整数,您可以通过编写重写规则来传递变量,该规则类似于&#34;所有整数都是变量&#34;或者&# 34;所有以整数开头的slu is都是变量&#34;但你很快就会与帖子名称发生冲突。例如,以数字开头的帖子怎么样?此外,许多插件会使用固定链接将您发送到某些页面,并且您可能会在那里发生冲突。最好使用任何这些东西来传递变量:

获取变量
岗位变量
隐藏的帖子变量
会话变量
随机数
Wordpress元数据,如用户元数据

祝你好运