Ist es möglich (über PHP) zu überprüfen, ob XML-RPC in WordPress aktiviert ist? So etwas wie eine Funktion zu schreiben, die dies testet.
if(is_xmlrpc_enabled()) {
//action
}
else {
//another action
}
Kalt
Ist es möglich (über PHP) zu überprüfen, ob XML-RPC in WordPress aktiviert ist? So etwas wie eine Funktion zu schreiben, die dies testet.
if(is_xmlrpc_enabled()) {
//action
}
else {
//another action
}
Kalt
XML-RPC ist standardmäßig für WP-Versionen > 3.5 aktiviert (mit ‘xmlrpc_enabled’-Hook, der es ermöglicht, es zu deaktivieren). Für ältere Versionen gibt es ein Feld in der Datenbank (Optionstabelle), das angibt, ob es aktiviert ist oder nicht. ( Diese Option wird für wp > 3.5 entfernt)
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;
}
Can funktioniert gut, aber einige Hosting-Unternehmen erlauben aus Sicherheitsgründen standardmäßig keine XML-RPC-Verbindung, und dann wird Ihr Skript nicht funktionieren.
– Benoti
16. März 2019 um 10:20 Uhr
Die Frage lautet “ist xmlrpc in WordPress aktiviert” und es ist so, wie es ist. Bedeutet, dass ich am Software-Level-Check interessiert bin. Wenn Sie eine Art Protokollfilterung haben, die auf Netzwerkebene durchgeführt wird, ist xmlrpc auf der Ebene von WordPress NOCH aktiviert, aber es wird aufgrund der Netzwerkbeschränkung nicht funktionieren. In diesem speziellen Fall müssen Sie eine Methode mit einem anderen Ansatz implementieren (oder sich an das Hosting-Unternehmen wenden, da diese Art von Einschränkung seltsam ist). Die obige Methode funktioniert also auf jeden Fall für den beschriebenen Zweck (und für die Zeit, in der ich sie verwendet habe).
– Kalt
17. März 2019 um 14:02 Uhr
Subodh Ghulaxe
WordPress hat zwei Testmethoden in seinem XML-RPC-Server:
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;
}
Wenn Sie dasselbe Ergebnis erhalten, bedeutet dies, dass Sie die Anfrage ordnungsgemäß an Ihren WordPress XML-RPC-Server senden und die Anfrage ordnungsgemäß empfangen können.