Как проверить, включен ли XML-RPC в wordpress

можно ли проверить (через php), включен ли XML-RPC в wordpress. Что-то вроде, написать функцию, которая проверит это...

if(is_xmlrpc_enabled()) {
   //action
}
else {
   //another action
}

2 ответов


XML-RPC включен по умолчанию для версий WP > 3.5 (с крючком "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;
}

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 и получить запрос правильно.