Intereting Posts
После перехода от DEV к LIVE, woocommerce не может проверить Добавление второго адреса электронной почты в завершенный заказ в WooCommerce Как сделать сумму всех сообщений, отображаемых в цикле Использование функции_widget Multiple Times Добавление шаблонов страниц для публикации, но он игнорировал это Получать пользовательские сообщения с определенными идентификаторами в настраиваемом цикле, используя короткий код Заменить название категории с идентификатором товара в wordpress urls Сортировка записей архива на основе нескольких мета ключей Советы и плагины против вредоносных программ Активация нового зарегистрированного сайта выходит из строя на многоузловом Прекратить отправку сообщений без потери данных? Как получить массив из навигационного меню, если это плагин? Как выводить только содержимое сообщения Запросы на завивки отправляются два раза Запись (с помощью foreach) ключей массива объектов в новый массив вызывает фатальную ошибку

Как включить wpautop для содержимого XMLRPC

Я использую поддержку WordPress XMLRPC .

Содержимое, полученное с помощью клиента XMLRPC , не содержит автоматически добавленных тегов <p> , тогда как страницы, созданные в блоге WordPress, выполняются.

Есть ли простой способ получить теги <p> проходящие через содержимое XMLRPC ?

Solutions Collecting From Web of "Как включить wpautop для содержимого XMLRPC"

Таким образом, функция xmlrpc get_post по умолчанию не имеет никаких хороших фильтров для использования. Решение: сверните свой собственный обратный вызов XML-RPC!

xmlrpc_methods к xmlrpc_methods и добавьте настраиваемый метод, в этом случае называемый post_autop . Ключ массива будет именем метода и значением обратного вызова метода.

 <?php add_filter( 'xmlrpc_methods', 'wpse44849_xmlrpc_methods' ); /** * Filters the XMLRPC method to include our own custom method */ function wpse44849_xmlrpc_methods( $method ) { $methods['post_autop'] = 'wpse44849_autop_callback'; return $methods; } 

Тогда у нас есть функция обратного вызова, которая получит массив $args . Что будет делать несколько простых вещей: зарегистрируйте пользователя (подтвердите имя пользователя / пароль), затем выберите сообщение, которое мы хотим, заменим текст версией autop'd и вернем сообщение.

 <?php function wpse44849_autop_callback( $args ) { $post_ID = absint( $args[0] ); $username = $args[1]; $password = $args[2]; $user = wp_authenticate( $username, $password ); // not a valid user name/password? bail. if( ! $user || is_wp_error( $user ) ) { return false; } $post = get_posts( array( 'p' => $post_ID ) ); // no posts? bail. if( empty( $post ) ) { return false; } $post = $post[0]; // the magic happens here $post->post_content = wpautop( $post->post_content ); return (array) $post; } 

Вы можете, конечно, выполнить любую настройку, которую хотите отправить, прежде чем возвращать значение. Вот вышесказанное как плагин .

Я использовал немного Python, чтобы проверить это.

 >>> import xmlrpclib as xmlrpc >>> s = xmlrpc.ServerProxy('http://localhost/xmlrpc.php') >>> post = s.post_autop(1, 'admin', 'password') >>> post # content of the post here as a Python dict