Получить идентификаторы всех сообщений из блога WordPress через запрос xmlrpc

Я не нашел никакого вызова метода xmlrpc, чтобы сделать это в кодексе WordPress. Я могу получить все сообщения через metaWeblog.getRecentPosts и извлечь идентификаторы, но я точно не знаю количество сообщений в блоге.

1 ответ

Решение

Не существует XML-RPC-метода для получения всех сообщений, в основном потому, что это может привести к значительным проблемам с производительностью (создание блога с 5000 сообщений и большим трафиком... попытка проанализировать список всего может привести к серьезной задержке сервера),

Ближайшие методы WordPress, которые вы можете получить, будут getRecentPosts звонки: blogger.getRecentPosts а также metaWeblog.getRecentPosts (вызов MetaWeblog на самом деле является просто псевдонимом вызова Blogger).

Тем не менее, вы можете создать свой собственный метод, который возвращает либо количество опубликованных сообщений или список идентификаторов опубликованных сообщений. Просто создайте быстрый плагин для подключения к системе XML-RPC, чтобы добавить свою конечную точку и метод:

function xml_add_method( $methods ) {
    $methods['myNamespace.postCount'] = 'get_post_count';
    $methods['myNamespace.postIDList'] = 'get_post_id_list';
    return $methods;
}
add_filter( 'xmlrpc_methods', 'xml_add_method' );

Этот блок кода добавит два новых вызова в вашу систему XML-RPC, myNamespace.postCount а также myNamespace.postIDList, Вы можете вызывать их удаленно, чтобы получить количество опубликованных сообщений и список идентификаторов опубликованных сообщений соответственно.

Вам также необходимо определить функции PHP, которые будут обрабатывать запрос - вся система XML-RPC направляет удаленные запросы на внутренние функции PHP, которые возвращают данные:

function get_post_count( $args ) {
    global $wpdb;

    ... code that retrieves the total count of published posts from the database ...

    return $count;
}

function get_post_id_list( $args ) {
    global $wpdb;

    ... code that retrieves a list of published posts from the database ...

    return $postlist;
}

Вот и все. Соберите весь код в специальный плагин, разместите его на своем сайте, активируйте его, и теперь вы можете получить количество опубликованных постов или список опубликованных идентификаторов постов через XML-RPC.

Другие вопросы по тегам