对于WordPress中的特定情况,我尝试在我的域名wp-admin
之间添加'/ blog',因此它看起来像http://example.com/blog/wp-admin
我已经有一个.htaccess文件可以重写网站99%的网址,但它不会重写按日期/类别过滤生成的网址。
另一个有效的解决方案是编辑核心文件edit.php
以包含'/ blog',但我宁愿不触及核心文件
以下是我更改edit.php
时的效果:
elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
wp_redirect( '/blog' . remove_query_arg( array('_wp_http_referer', '_wpnonce'), wp_unslash($_SERVER['REQUEST_URI']) ) );
exit;
}
这是我的插件,我正在尝试编写以解决问题而不触及核心:
function change_filter_URL() {
if (strpos($_SERVER['REQUEST_URI'], '/wp-admin') === 0) {
echo '/blog' . $_SERVER['REQUEST_URI'] . '<br>';
$url = '/blog' . $_SERVER['REQUEST_URI'];
return $url;
echo $url;
}
}
add_action('init', 'change_filter_URL');
如果我发表评论return $url;
并离开echo $url;
,则会回显正确的网址。但我目前的问题是return $url
没有返回/输出任何东西。第一个echo
有效。我想知道如何才能正确返回$url
?
答案 0 :(得分:2)
您可以使用header()
将查询重定向到正确的网址:
function change_filter_URL() {
if (strpos($_SERVER['REQUEST_URI'], '/wp-admin') === 0 &&
strpos($_SERVER['REQUEST_URI'], '/blog/') === FALSE) {
$url = '/blog' . $_SERVER['REQUEST_URI'];
header('Location: '.$url);
}
}