Комментарий не был опубликован с xml-rpc wp.newComment php - PullRequest
2 голосов
/ 21 июля 2011

У меня есть такой код.

<?php

include('IXR_Library.php');
$client = new IXR_Client('http://127.0.0.1/wordpress/xmlrpc.php');

$data = array(
'comment_post_ID' => 1,
'comment_author' => 'test_author',
'comment_author_email' => 'test@gmail.com',
'comment_author_url' => 'http://test.limewebs.com',
'comment_content' => 'Test Content',
'comment_type' => '',
'comment_parent' => 0,
'user_id' => 1,
'comment_author_IP' => '127.0.0.1',
'comment_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)',
'comment_date' => $time,
'comment_approved' => 1,
);

if (!$client->query('wp.newComment','', 'username','password','12',$data)) {
die('An error occurred - '.$client->getErrorCode().":".$client->getErrorMessage());
}
$result = $client->wp_insert_comment($data);
print_r($result);
?>

В приведенном выше коде я публикую свой комментарий на сайте WordPress, но контент (comment_content) не публикуется.

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Чувак, убери весь префикс 'comment_' в свойствах твоего массива.Написание класса WpAPI Я глубоко вкопался в сердце XMLRPC WP.Параметры никогда не находятся в том порядке, в котором их поместил бы нормальный человек.Используемые имена также не согласуются.Это не игра в догадки.Всегда смотрите на код ядра WP, если не уверены ... [или используйте мой класс;)]

0 голосов
/ 11 февраля 2012

Вы используете неверные параметры по вашему запросу. Документация по Wordpress XML-RPC_wp перечисляет следующие параметры, допустимые для запросов wp.newComment:

Parameters

    int blog_id
    string username
    string password
    int post_id
    struct comment
        int comment_parent
        string content
        string author
        string author_url
        string author_email 

Следующий код должен быть достаточным для публикации нового комментария к wordpress 3.3.5 (XML-RPC_wp api v3.1) через xmlrpc:

<?     
include('IXR_Library.php.inc');
    $client = new IXR_Client('http://myblog.com/xmlrpc.php');

    $time = date("Ymd")."T".date("H:i:s")."Z";

    $post_id = "630";

    $data = array(
    'author' => 'test_author',
    'author_email' => 'test_comment@scroogle.org',
    'author_url' => 'http://www.scroogle.org',
    'content' => 'Comentario Teste <a href="http://www.scroogle.org">scroogle.org</a>',
    'date' => $time,
    'approved' => 1,
    );


    if (!$client->query('wp.newComment','', '','',$post_id, $data)) {
    die('An error occurred - '.$client->getErrorCode().":".$client->getErrorMessage());
    }
    $result = $client->wp_insert_comment($data);
    print_r($result);
?>

Примечание: для публикации анонимных комментариев через xmlrpc вам понадобится WordPress - Плагин для анонимных XMLRPC комментариев

...