esc_url gibt eine falsche URL zurück

Was wäre der Grund für mich auf eine falsche Website zu schicken?

Ich benutze es in meiner Suchleiste und wenn ich einen Wert suche, schickt es mich auf eine meiner anderen Webseiten, aber ich bin nicht sicher, was ich getan habe, um das zu erreichen.

Solutions Collecting From Web of "esc_url gibt eine falsche URL zurück"

Es war etwas sehr einfaches, aber etwas, das ich übersehen habe. Da ich immer < ?php get_search_form(); ?> < ?php get_search_form(); ?> Für meine Suchformulare gehe ich natürlich davon aus, dass ich das in meiner Bereichsvorlage für den Suchbereich verwendet habe, aber das war ich nicht.

Ich habe das Theme Custom von einem anderen Theme erstellt, das ich für eine andere Website erstellt habe, und aus irgendeinem Grund in der action="" des Formulars action="" Ich programmiere die URL für die erste Site fest; Deshalb wurde ich immer wieder dorthin weitergeleitet.

Ich dachte, ich hätte den Abschnitt überprüft, aber ich muss es übersehen haben. Nach zwei Tagen beschloss ich, den Abschnitt noch einmal zu überprüfen, dank der Vorschläge in den Kommentaren, die mich dazu brachten, das Problem zu überdenken.

Also ja, wirklich blöder Hirnfurz, aber jetzt ist es getriggers.

Betrachten Sie den folgenden Code:

 

home_url() ist eine WordPress-function, die die Home-URL für die aktuelle Site abruft. Wenn sie mit einem optionalen $path Argument aufgerufen wird, gibt sie die Home-URL mit dem angehängten optionalen $path Argument zurück.

Hier ist die functionsdefinition (aus 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 ); } 

Im Grunde gibt es nichts in dieser function, das eine zufällige URL aus dem Nichts zurückgeben würde.

Wenn solche Situationen auftreten, ist es am besten, den Code nach Hinweisen zu durchsuchen.

Führen Sie dies in einer Shell im WordPress-Stamminstallationsverzeichnis aus:

 grep -nr "http://randomurl.com" 

Dadurch werden alle Vorkommen von http://randomurl.com in Ihrer Codebasis aufgelistet und die Dateien http://randomurl.com in denen sie vorkommen. Wenn mehrere Vorkommen vorhanden sind, können Sie eine etwas komplexere Suche verwenden (mithilfe von Befehlszeilenoptionen wie awk ) um zu sehen, welche Probleme tatsächlich verursacht werden.

Hinweis: Ich weiß, dass dies bereits getriggers wurde, aber dies könnte für zukünftige Besucher nützlich sein, also poste ich es als Antwort 🙂