Wie benutze ich den ‘http_request_host_is_external’ Filter

Ich habe eine wirklich harte Zeit zu versuchen, den http_request_host_is_external Filter zu verwenden. Für einen Hintergrund versuche ich einen separaten Server einzurichten, um private Plugin- und Theme-Updates zu bearbeiten. Das Problem ist, dass es sich um einen separaten Server handelt. Die wp_http_validate_url -function wp_http_validate_url (wp-includes / http.php) beendet die Anfrage. Das Folgende sind die Zeilen 481 bis 503 dieser Datei.

 if ( $ip ) { $parts = array_map( 'intval', explode( '.', $ip ) ); if ( '127.0.0.1' === $ip || ( 10 === $parts[0] ) || ( 172 === $parts[0] && 16 = $parts[1] ) || ( 192 === $parts[0] && 168 === $parts[1] ) ) { // If host appears local, reject unless specifically allowed. /** * Check if HTTP request is external or not. * * Allows to change and allow external requests for the HTTP request. * * @since 3.6.0 * * @param bool false Whether HTTP request is external or not. * @param string $host IP of the requested host. * @param string $url URL of the requested host. */ if ( ! apply_filters( 'http_request_host_is_external', false, $host, $url ) ) return false; } } 

Sie werden feststellen, dass dort ein Kommentar steht, in dem erwähnt wird, dass wir den Filter anwenden und externe Anfragen stellen können, aber das, was ich versuche, scheint nicht zu funktionieren.

  require 'plugin_update_checker.php'; apply_filters( 'http_request_host_is_external', true, "my-update-server.com", 'http://my-update-server.com/update/8b6b28f1a2604deea192076cb2343ff4/' ); $MyUpdateChecker = new PluginUpdateChecker_1_3( 'http://my-update-server/update/8b6b28f1a2604deea192076cb2343ff4/', __FILE__, 'testslug' ); 

Ich dachte, wenn ich den Filter in der Hauptdatei meines Plugins setze, würde ich mich darum kümmern, aber ich denke, das Problem ist, dass die externe Anfrage direkt in WordPresss Updater passiert, also funktioniert mein Filter vielleicht nicht?

Solutions Collecting From Web of "Wie benutze ich den ‘http_request_host_is_external’ Filter"

Du kannst das:

 add_filter( 'http_request_host_is_external', '__return_true' ); 

Beachten Sie jedoch, dass dies diese Sicherheitsfunktion deaktiviert. Wenn Sie wissen, dass der Host oder die URL sich nicht ändern und dies auch immer sein wird, können Sie sicherer sein, indem Sie explizit nach dem suchen:

 add_filter( 'http_request_host_is_external', 'allow_my_custom_host', 10, 3 ); function allow_my_custom_host( $allow, $host, $url ) { if ( $host == 'my-update-server' ) $allow = true; return $allow; } 

Ich bin anscheinend etwas eingerostet. Das hat für mich gesorgt:

 add_filter( 'http_request_host_is_external', function() { return true; });