如何阻止WordPress从URL删除&From?

时间:2016-02-03 作者:Coder_2016

所以我有一个URL,它的末尾有一个跟踪链接。由于某种原因,WordPress正在删除& 导致跟踪失败。您可以在此处看到URL示例:

http://www.domain.co.uk/internalpage/?&mkwid=smWfvaLGf_dm

当你经历这一切,你就会redirected 在某种程度上:

http://www.domain.co.uk/internalpage/?mkwid=smWfvaLGf_dm

请注意& 已删除。而且,这只发生在内部页面上。有人知道如何阻止这一切吗?

2 个回复
SO网友:birgire

以下是原因:

This partredirect_canonical() 正在删除前导& 在重定向查询部分:

// tack on any additional query vars
$redirect[\'query\'] = preg_replace( \'#^\\??&*?#\', \'\', $redirect[\'query\'] );
示例:

example.tld/?&a=1&b=2&c=3 
被重定向到

example.tld/?a=1&b=2&c=3 
如果你必须领先& 您可以尝试通过redirect_canonical 过滤器:

/**
 * Filter the canonical redirect URL.
 *
 * Returning false to this filter will cancel the redirect.
 *
 * @since 2.3.0
 *
 * @param string $redirect_url  The redirect URL.
 * @param string $requested_url The requested URL.
 */
$redirect_url = apply_filters( \'redirect_canonical\', $redirect_url, $requested_url );

SO网友:Arpita Hunka

可以在此处使用rawurlencode()函数。首先将“&;mkwid=smWfvaLGf\\u dm”此url传递到函数中,然后您将获得“%3F%26mkwid%3DsmWfvaLGf\\u dm”编码值。

现在继续函数。php并将此代码放在那里(但此代码将在您站点的每次调用中运行)

//for accessing current url
$accessUrl = get_site_url() .$_SERVER[\'REQUEST_URI\'];

$pos = strpos($accessUrl, "%");
if ($pos !== false) 
{
    $accessString = rawurldecode($accessUrl);
    wp_redirect($accessString);
    exit();
}
我觉得这对你有帮助。谢谢

相关推荐

WP JSON list all permalinks

Scenario我正在考虑编写一个自定义的wp json端点,以列出我的wordpress中每个帖子的所有永久链接。Question是否可以使用rest查询+筛选器来完成此操作?例如:。http://wpsite.com/wp-json/wp/v2/posts?filter[only-permalinks]当前的解决方案最后我编写了一个自定义端点,代码如下:添加到函数的底部。phpfunction get_all_slugs() { $posts = get_posts( array(&#