Я пытаюсь построить динамическую страницу в Wordpress через плагин.Я зарегистрировал действие следующим образом:
add_action('the_post', 'createDynamicPage');
Это работает, и функция вызывается, как и ожидалось.Затем я получаю объект WP_Post
и проверяю его следующим образом:
public static function createDynamicPage(WP_Post $post)
{
if (is_page('my-dynamic-page')) {
// Do the processing etc
$post->post_title = 'My New Title';
$post->post_content = $whatIProcessedAbove;
}
return $post;
}
Изменение свойства post_title
отражается на странице, а содержимое - нет.
ИтакРешение, которое я придумал, состояло в том, чтобы изменить объект WP_Post
, передать его в wp_update_post()
и затем принудительно перезагрузить страницу.
Это работает, и содержимое страницы такое, каким оно должно быть, ноэто определенно не правильный способ сделать это.Во-первых, если кто-то еще попадет на эту страницу между моим первым попаданием и перезагрузкой страницы из БД, я увижу их содержание.
Итак, как же мне получить изменения, которые я внесу вpost_content
свойство сразу быть видимым?Возможно, я использовал неправильный хук в add_action()
???
Help!