我正在尝试使用自定义网址加载单个帖子。但是由于有“&”字符,它正在重定向到默认URL。没有&字符,它工作正常。但是,如何在URL中读取此“&”?我的代码如下,
function mutually_add_query_vars($vars) {
return array('L') + $vars;
}
add_filter('query_vars', 'mutually_add_query_vars');
并加载单个模板
function mutually_template4($template) {
global $wp;
if ($wp->query_vars['L']=='6'.html_entity_decode('&').'au=2') {
return dirname( __FILE__ ) . '/single-ad.php';
}
else {
return $template;
}
}
add_filter('single_template', 'mutually_template4');
我尝试使用html_entity_decode,但是没有用。
答案 0 :(得分:0)
您需要编码
所以&将是%26
答案 1 :(得分:0)
您需要做的是URL编码而不是HTML编码(两者不同)。因此,您可以将&替换为%26。 Click here查看对URL编码的引用。
您还可以使用urlencode(string $ str)PHP函数对具有URL友好值的字符串进行编码。
答案 2 :(得分:0)
GET参数对以?开头。然后用&符号分隔,键/值用=分隔,因此myurl.com?L=6&au=2将被解析为两个单独的$wp_query_vars
元素,一个元素分配给L
,另一个到au
的情况下,如果出于某些原因您的键/值包含&,则需要手动解析&符号,而其他答案也建议将其编码为%26:)
function mutually_template4($template) {
global $wp;
if ($wp->query_vars['L']=='6' && $wp->query_vars['au']=='2') {
return dirname( __FILE__ ) . '/single-ad.php';
}
else {
return $template;
}
}
add_filter('single_template', 'mutually_template4');