#php #wordpress #rest #plugins #wordpress-rest-api
#php #wordpress #rest #Плагины #wordpress-rest-api
Вопрос:
Я новичок и пытаюсь написать плагин WordPress на PHP для автоматического обновления содержимого на нескольких страницах. Мне удалось заставить его работать, он обновляется правильно, однако он нарушает несколько параметров страницы (контролируемых темой). Я считаю, что это вызвано wp_update_post()
функцией.
Я ищу эквивалент REST API для этого, поскольку он успешно работает, когда я пробовал с Python.
<?php
.
..
...
$new_content = str_replace($old_data, $new_data, $content);
$edited_post = ['ID'=> $pageID, 'post_content' => $new_content];
wp_update_post( $edited_post);
Спасибо!
Комментарии:
1. Эти три строки кода, которыми вы поделились, только обновляют
post_content
поле. Как именно они «нарушают несколько параметров страницы»? Какие варианты?2. Ну, это то, что мне интересно, используемая тема не закодирована, и по какой-то причине при запуске плагина заголовок страницы (включая ее фон) исчезает. Я должен добавить их обратно вручную, используя «Параметры страницы» внизу страницы, технически это не является частью самого содержимого страницы. Используя REST, этого не происходит, но я не смог заставить его работать на PHP.
Ответ №1:
Найден ответ :
wp_set_current_user(1); // IMPORTANT FOR CRONJOB
$request = new WP_REST_Request( 'PUT', '/wp/v2/pages/'.$pageID );
$request->set_query_params( [ 'content' => $new_content ] );
$rest_response = rest_do_request($request);
wp_set_current_user(0);
На случай, если кому-то это нужно 😉