考虑以下代码:
<form role="search" method="get" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
home_url()
是一个Wordpress函数,用于检索当前站点的主URL。使用可选
$path
参数,它返回带有可选
$path
附加了参数。
以下是函数定义(来自wp-includes/link-template.php
L#1959):
function get_home_url( $blog_id = null, $path = \'\', $scheme = null ) {
$orig_scheme = $scheme;
if ( empty( $blog_id ) || !is_multisite() ) {
$url = get_option( \'home\' );
} else {
switch_to_blog( $blog_id );
$url = get_option( \'home\' );
restore_current_blog();
}
if ( ! in_array( $scheme, array( \'http\', \'https\', \'relative\' ) ) ) {
if ( is_ssl() && ! is_admin() && \'wp-login.php\' !== $GLOBALS[\'pagenow\'] )
$scheme = \'https\';
else
$scheme = parse_url( $url, PHP_URL_SCHEME );
}
$url = set_url_scheme( $url, $scheme );
if ( $path && is_string( $path ) )
$url .= \'/\' . ltrim( $path, \'/\' );
return apply_filters( \'home_url\', $url, $path, $orig_scheme, $blog_id );
}
基本上,这个函数中没有任何东西会返回一个不知从何而来的随机URL。
当出现这种情况时,最好的办法是grep
你的线索代码。
在Wordpress根目录的shell中运行此命令:
grep -nr "http://randomurl.com"
这将列出
http://randomurl.com
并显示它们出现在中的文件。如果出现多次,可以使用更高级的搜索(使用命令行选项,例如
awk
) 看看到底是谁在制造麻烦。
注意:我知道这个问题已经解决了,但这可能对未来的访问者有用,所以我将其作为一个答案发布:)