問題描述

它需要連接到 wordpress.org 並且超時。我在企業防火牆後面。在以前的版本中,我從來沒有遇到這個問題。為什麼 themes.php 需要訪問 wordpress.org,我該怎麼辦,所以它不會 (或者也許會讓我使用我的代理設置) 。

添加錯誤消息:

PHP Warning: An unexpected error occurred. Something may be wrong with WordPress.org or this server』s configuration. If you continue to have problems, please try the support forums. (WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.) in C:inetpubwwwrootticketwp-adminincludestheme.php on line 298

這對 3.7 來説肯定是新的。我們有 3.6.1 安裝了 4-5 次,沒有問題。如果他們不能改變主題,我會有人斬首。

更新:3.8 修復了很多主要問題。但是,我們仍然無法找到插件,查找主題或獲取信息板 Feed 。如果有人有這個解決方案 – 即使它是代理服務器的建議,那將是有幫助的。

最佳解決方案

導航 WP 管理員通常會觸發多個外部請求,例如獲取新聞源和主題/插件更新 (不計算任何插件/主題可能在自己做的) 。

您可以將配置常量放入 wp-config.php 以完全/部分阻止外部請求:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

或者配置外部請求以使用您的代理設置:

define('WP_PROXY_HOST', '192.168.84.101');
define('WP_PROXY_PORT', '8080');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');

WP_PROXY_USERNAMEWP_PROXY_PASSWORD 進行認證。

次佳解決方案

這是 WordPress 的 HTTP API 更改的問題。它不再與 cURL 完全兼容。我不知道為什麼會發生這種情況 (沒有提供上下文信息,發生此錯誤時),但您可以添加臨時修復。

在插件中,或在 wp-config.php 的最後,添加以下行:

add_filter( 'http_api_transports', function()
{
    return array( 'streams' );
});

這將禁用 cURL 並使錯誤消息消失,而不影響服務器上的其他組件。


為了完整,在這裏我目前的 cURL 細節:

$ curl --version
curl 7.26.0 (i686-pc-mingw32) libcurl/7.26.0 OpenSSL/0.9.8x zlib/1.2.7
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tf
tp
Features: GSS-Negotiate Largefile NTLM SSL SSPI libz

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。