<?php echo esc_url( home_url( '/' ) ); ?>
が私を間違ったウェブサイトに案内しているのはなぜですか?
私は検索バーでそれを使用し、値を検索するとそれが他のWebサイトの1つに送信されますが、そのために何をしたのかわかりません。
それは非常に簡単なものになってしまいましたが、私は見落としていました。私はいつも検索フォームに<?php get_search_form(); ?>
を使っているので、私は検索領域のための私のセクションテンプレートでそれを使っていたと当然思いますが、そうではありませんでした。
私は別のウェブサイトのために構築した別のテーマからテーマのカスタムを構築し、何らかの理由でフォームのaction=""
に最初のサイトのURLをハードコードしました。だからこそ私はそこに転送され続けました。
セクションをチェックしたと思いましたが、見落としていたに違いありません。 2日かそこらの後、私は私が問題を再考したコメントの提案のおかげで、セクションを再チェックすることにしました。
だから、本当に愚かな頭脳おならが、それは今解決されています。
次のコードを見てください。
<form role="search" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
home_url()
は、現在のサイトのホームURLを取得するWordpressの関数です。オプションの$path
引数を指定して呼び出すと、オプションの$path
引数が追加されたホームURLが返されます。
これが関数の定義です(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のルートインストールディレクトリのシェルでこれを実行します。
grep -nr "http://randomurl.com"
これはあなたのコードベースでhttp://randomurl.com
の全ての出現をリストし、それらが現れるファイルを示すでしょう。もし複数の出現があるなら、(awk
のようなコマンドラインオプションを使って)もう少し高度な検索を使うことができます。トラブルを引き起こします。
注:これは既に解決されていますが、これは将来の訪問者に役立つ可能性があるため、回答として掲載しています:)