Intereting Posts
Как передать переменную с страницы шаблона на дочернюю тему functions.php Бесконечный цикл сообщений WordPress CSS не загружается внутри администратора WP Какой код писать в моем плагине, чтобы исключить мои плагины сгенерированных страниц из главного навигатора? Оберните / закройте «запрос» для заказанного письма с первым письмом Мой сайт wordpress загружает страницу index.php вместо панели мониторинга Определение количества сообщений для авторов Каков наилучший способ изменения боковых панелей на основе пользовательских правил таксономии? Получить конкретный ключ ACF и значение из всех сообщений – нет доступа к БД Пользовательский тип сообщения с двумя шаблонами Мне нужна базовая помощь с пользовательскими типами сообщений Почему сообщения пропадают из admin после обновления с WP 2.7.1 до 3.0.1? Обновить параметр WP плагином Как автоматизировать число зарегистрированных номеров? Изменение структуры постоянных ссылок для сообщений

XMLRPC Избегайте дублирования контента

Я хочу избежать дублирования содержимого сообщения через xmlrpc. Так:

если почта существует, ничего не происходит …. если не существует данных вставка происходит ….

Метод проверки будет состоять из заголовка сообщения или сообщения. Я видел это решение, но, похоже, это не сработало.

Solutions Collecting From Web of "XMLRPC Избегайте дублирования контента"

Поскольку вы добавляете ссылку на мой предыдущий ответ, позвольте мне рассказать, как я его протестировал:

Настройка на сайте A – XML-RPC-клиент

include_once( ABSPATH . WPINC . '/class-IXR.php' ); include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' ); $client = new WP_HTTP_IXR_CLIENT( 'http://example.tld/xmlrpc.php' ); // <-- Change! $client->debug = true; $result = $client->query( 'wp.newPost', [ 0, "username", //<-- Change! "password", //<-- Change! [ 'post_status' => 'draft', 'post_title' => 'xml-rpc testing', 'post_content' => 'hello xml-rpc! Random: ' . rand( 0, 999 ), ] ] ); 

где вам нужно изменить путь , имя пользователя и пароль для ваших нужд.

Если я правильно помню, эта замечательная статья Эрика Манна помогла мне в отношении кода настройки клиента, когда я тестировал свой плагин в прошлом году.

Настройка на сайте B – сервер XML-RPC

Здесь мы добавляем следующий плагин:

 <?php /** * Plugin Name: Avoid XML-RPC Post Title Duplication * Description: Prevent duplicate posts when doing wp.newPost via XML-RPC * Plugin URI: http://wordpress.stackexchange.com/a/157261/26350 */ add_action ('xmlrpc_call', 'wpse_xmlrpc_call' ); ///// function wpse_xmlrpc_call( $method ) { if( 'wp.newPost' === $method ) add_filter( 'xmlrpc_wp_insert_post_data', 'wpse_xmlrpc_wp_insert_post_data' ); }//// function wpse_xmlrpc_wp_insert_post_data( $post_data ) { // Check if the post title exists: $tmp = get_page_by_title( $post_data['post_title'], OBJECT, $post_data['post_type'] ); // Go from 'insert' to 'update' mode within wp_insert_post(): if( is_object ( $tmp ) ) $post_data['ID'] = $tmp->ID; return $post_data; } 

тесты

Прежде чем активировать наш плагин:

Если клиент A создает три сообщения с одним и тем же заголовком, но с другим контентом, то они будут отображаться как на сайте B:

до

Здесь мы видим, что эти три сообщения создаются на сервере B как новые сообщения.

После активации нашего плагина:

Теперь, если клиент A создает сообщение, он будет отображаться на сервере B следующим образом:

after2

Затем клиент A создает другое сообщение с тем же заголовком, но с другим контентом. Теперь изменен предыдущий пост:

after3

Список сообщений будет отображаться следующим образом:

after1

поэтому мы избежали дублирования.

Заметки

Убедитесь, что сайт B поддерживает XML-RPC.