WordPress xmlprc не работает в https

Недавно я обновил свой сайт с использованием SSL, и все URI теперь называются «https: //».

Мой сайт разработан с Symfony 2 и смешивает установку WordPress внутри Symfony 2 web/wordpress каталог.

Все регулярный доступ в порядке. Только один вопрос:

В моем Symfony 2 есть следующий фрагмент кода:

private function getRecentPosts($num = 4)
{
require_once 'wordpress/wp-includes/class-IXR.php';

$user      = '11111';
$pwd       = '22222';

$host='https://www.rsywx.net';
$script='/wordpress/xmlrpc.php';
$port=443;

$client = new \IXR_Client($host, $script, $port);

$params = array(0, $user, $pwd, $num);
$client->query('metaWeblog.getRecentPosts', $params);

$wp = $client->getResponse();

return $wp;
}

Когда мой сайт не упакован с https, приведенный выше код работает нормально. Но теперь он находится под https, приведенный выше код не работает. Если я брошу $client переменная после query вызов функции, она выдает ошибку вроде:

+error: IXR_Error {#256 ▼
+code: -32300
+message: "transport error - could not open socket"

Есть намеки? Нужно ли настроить мой WP?

0

Решение

Я просто избегал использования XMLRPC для решения этой проблемы.

В моем приложении Symfony 2 я просто использовал 2-ю базу данных для прямого доступа к основной базе данных WordPress. Это взлом, но это решает мою проблему на данный момент.

0

Другие решения

Проблема была в файле WP-включает / класса IXR.php, он не работает с HTTPS, вы должны также использовать класс-сор-HTTP-IxR-client.php . И не забудьте включить файл конфигурации сор-load.php.

Фрагмент кода будет:

private function getRecentPosts($num = 4)
{
include 'wordpress/wp-load.php';
require_once ABSPATH . WPINC . 'wordpress/wp-includes/class-IXR.php';
require_once ABSPATH . WPINC . 'wordpress/wp-includes/class-wp-http-ixr-client.php';$user      = '11111';
$pwd       = '22222';

//Deprecated
/*
$host='https://www.rsywx.net';
$script='/wordpress/xmlrpc.php';
$port=443;
$client = new \IXR_Client($host, $script, $port);
*/
$client = new WP_HTTP_IXR_CLIENT('https://www.rsywx.net/wordpress/xmlrpc.php');

$params = array(0, $user, $pwd, $num);
$client->query('metaWeblog.getRecentPosts', $params);

$wp = $client->getResponse();

return $wp;
}
0

По вопросам рекламы [email protected]