我正在尝试将url参数包含在我的博客页面的链接中。
我想要一个看起来像这样的链接:
/blog?data_cat_id=5&data_post_year=2014&data_post_month=5
我能够以我想要的方式构建链接,或者以纯文本形式写出来用于测试目的,或者从WP循环中的变量生成链接。但是,点击链接总是转到/blog
,并删除了网址参数。
我尝试了几件事来让它发挥作用。
策略#1:
我在 functions.php 文件中添加了以下函数,以便在WP中注册查询参数。
function add_query_variables() {
global $wp;
$wp->add_query_var('data_cat_id');
$wp->add_query_var('data_post_year');
$wp->add_query_var('data_post_month');
}
add_filter('init', 'add_query_variables' );
这在很长一段时间内都没有用,然后在我进入管理菜单中的“设置>固定链接”后开始工作,然后点击保存(清除缓存的重写规则,只是以防万一 - 我不明白他们是否参与了这里。
一切都很好,但是当我从上面不再需要的函数中删除单个查询变量时,停止了工作。 (我原来在上面的代码中也有$wp->add_query_var('data_ajax_type');
。)说真的,这是我唯一改变的。
我试过再次刷新重写规则缓存,但是虚无,没什么。我尝试添加单个应该不相关的$wp->add_query_var('data_ajax_type')
行。没有骰子。点击我的链接时,网址参数仍被删除。
策略#2:
当策略#1停止工作时,我从functions.php中删除了add_query_variables()
函数,并尝试使用add_query_arg()
函数生成链接本身。 (在我阅读的文章/文档中使用add_query_arg()
时,没有提到需要使用WP注册查询参数,这就是我删除add_query_variables()
函数的原因。我不知道这是不是是对文档的疏忽,或者这是否正确。)
我的链接现在正在我的模板文件中生成:
add_query_arg(
array(
'data_cat_id' => 5,
'data_post_year' => 2014,
'data_post_month' => 5
), '/blog'
)
结果链接看起来像这样,这就是我想要的:
http://www.example.com/blog?data_cat_id=5&data_post_year=2014&data_post_month=5
但是,再一次,当我点击此链接时,我会在/blog
结束,并删除所有网址参数。
所以......我坚持这个。我不知道该做什么或接下来要尝试什么。有什么想法,建议吗?
是否应该明确如何在实践中使用这些功能以使它们真正起作用?