如何检查 WordPress 中是不是启用了 XML-RPC

Posted

技术标签:

【中文标题】如何检查 WordPress 中是不是启用了 XML-RPC【英文标题】:How to check is XML-RPC enabled in WordPress如何检查 WordPress 中是否启用了 XML-RPC 【发布时间】:2013-03-08 05:39:05 【问题描述】:

是否可以检查(通过 php)在 WordPress 中是否启用了 XML-RPC? 比如,写一个函数来测试这个。

if(is_xmlrpc_enabled()) 
   //action

else 
   //another action

【问题讨论】:

【参考方案1】:

WordPress 在其 XML-RPC 服务器中有两种测试方法:

demo.sayHello – Returns a standard “Hello!” message.
demo.addTwoNumbers – Accepts an array containing two numbers and returns the sum.

function sayHello()  
  
    $params = array();  
    return $this->send_request('demo.sayHello',$params);  
 

$objXMLRPClientWordPress = new XMLRPClientWordPress("http://localhost/wordpress31/xmlrpc.php" , "username" , "passowrd"); 

function send_request($requestname, $params)  
  
            $request = xmlrpc_encode_request($requestname, $params);  
            $ch = curl_init();  
            curl_setopt($ch, CURLOPT_POSTFIELDS, $request);  
            curl_setopt($ch, CURLOPT_URL, $this->XMLRPCURL);  
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
            curl_setopt($ch, CURLOPT_TIMEOUT, 1);  
            $results = curl_exec($ch);  
            curl_close($ch);  
            return $results;  
  

如果您得到相同的结果,则意味着您能够正确地将请求发送到您的 WordPress XML-RPC 服务器并正确接收请求。

【讨论】:

【参考方案2】:

默认情况下,对于 WP 版本 > 3.5 启用 XML-RPC(带有允许禁用它的 'xmlrpc_enabled' 挂钩) 对于旧版本,数据库中有一个字段(选项表),它指示它是否启用。(此选项在 wp > 3.5 时被删除)

function is_xmlrpc_enabled() 
    $returnBool = false; 
    $enabled = get_option('enable_xmlrpc'); //for ver<3.5
    
    if($enabled) 
        $returnBool = true;
    
    else 
        global $wp_version;
        if (version_compare($wp_version, '3.5', '>=')) 
            $returnBool = true; //its on by default for versions above 3.5
        
        else 
            $returnBool = false;
          
    
    return $returnBool;

【讨论】:

可以正常工作,但是某些托管公司出于安全原因默认不允许 XML-RPC 连接,然后您的脚本将无法工作。 问题指出“在 wordpress 中启用了 xmlrpc”,它就是这样。表示我对软件级别检查感兴趣。如果您有某种在网络级别完成的协议过滤 - xmlrpc 在 wordpress 级别上启用了 STIL,但由于网络限制,它无法正常工作。在那种特定情况下,您将需要使用不同的方法实施方法(或咨询托管公司,因为这种限制很奇怪)。所以上面的方法在任何情况下都可以工作,为了写的目的(以及我使用它的时间)

以上是关于如何检查 WordPress 中是不是启用了 XML-RPC的主要内容,如果未能解决你的问题,请参考以下文章

wordpress Gzip压缩不起作用如何在浏览器中检查它

如何检查 iOS/iPadOS 中是不是启用了深色模式?

如何检查当前页面是不是是wordpress中的插件管理面板

iOS:如何检查是不是启用了触觉反馈(iOS 设置)

如何检查 iPhone 上是不是启用了通知

wordpress:如何检查 slug 是不是包含特定单词?