如果BigOffer
部件是静态的,可以使用重写规则轻松完成:
add_action(\'init\', \'big_offer_rule\');
function big_offer_rule() {
add_rewrite_rule(\'^BigOffer([0-9]+)/?\',\'index.php?pagename=bigoffer&offerId=$matches[1]\',\'top\');
}
add_filter(\'query_vars\', \'big_offer_vars\');
function big_offer_vars( $vars ) {
return array_merge($vars, array(\'offerId\') );
}
添加此代码后,
you have to flush rules 进入后端的“设置”->“永久链接”部分并保存更改。
之后,您必须使用slug创建一个页面:\'bigoffer\'
. 当您键入如下url时,此页面将打开http://example.com/BigOffer12345
数字部分可以用来查看get_query_var(\'offerId\')
, 类似于:
add_action(\'template_redirect\', \'big_offer_id\');
function big_offer_id() {
if ( is_page(\'bigoffer\') ) {
// do something... following is just an example
// the function get_the_content_somewhere_by_id does not exist,
// just imagine is a function that retrieve the page content using the id
$offerid = get_query_var(\'offerId\');
global $offer_content;
$offer_content = get_the_content_somewhere_by_id($offerid);
}
}
我用过钩子
\'template_redirect\'
因此,您在函数中所做的一切都是在页面显示之前完成的。然后,我使用一个全局变量来存储检索到的内容,通过这种方式,在页面模板中,您可以
global $offer_content; echo $offer_content;
.
“偏离路线”不是真实的代码只是概念的证明。
所有这些代码都可以在自定义插件(建议的位置)中编写,也可以在functions.php
当前主题的。