在我的网站上生成网址时,add_query_args确实存在问题。我确实有一个产品详细信息页面,其中包含一些帖子信息。我创建了一些高级自定义字段(ACF),以区分该产品的某些类型。类型是ACF中的一个转发器字段,因此我可以向一个产品添加更多类型。
因此,我首先显示该帖子中的常用信息,然后循环显示那些ACF类型字段:
[产品]
我还创建了一个带有以下内容的空帖子/页面:more_info_page和一个模板,在该模板上,我将显示该类型的该帖子的所有详细信息。
(更多信息)应指向具有帖子ID和ACF类型编号的页面。在循环中,我有一个索引,所以这里有数字。有了这个号码,我可以从ACF字段中获取信息(希望如此)。
据我目前的了解,我可以创建一个如下网址:
$mylink = esc_url(
add_query_arg( array (
'post_id' => $post->ID,
'type' => $type_idx,
), site_url( '/more_info_page/' )
));
<a href="<?php echo $mylink; ?>">more info</a>
我确实确实获得了以下链接:
/more_info_page/?post_id=300&type=0
/more_info_page/?post_id=300&type=1
/more_info_page/?post_id=300&type=2
链接在那里,第一个确实打开了正确的模板页面,在其中我可以看到查询变量。但是...其他链接没有链接到正确的页面。该URL与第一个URL相同,只是类型号不同。但它不会像第一个链接那样显示/加载我的/ more_info_page。
我不知道出了什么问题。我对add_query_arg的使用是否错误?
答案 0 :(得分:0)
我必须将vars包含在functions.php中,如下所示:
// Add custom query vars
add_filter( 'query_vars', 'my_query_vars', 10, 1 );
function my_query_vars($vars) {
$vars[] = 'type';
return $vars;
}
在我的情况下,该名称也不是唯一的,所以我也不得不更改名称。