Плагин WordPress для создания страницы Dynami c работает в WP5, но не в WP4 - PullRequest
0 голосов
/ 12 марта 2020

Я создал очень простой плагин WordPress, который создает динамическую c страницу. Я основывался на рекомендациях / ответах на аналогичные вопросы, заданные ранее. При работе в WP5 все работает, как и ожидалось, но не в WP4.

add_filter('the_posts',array($this,'createDynamicPage'));

...

public function createDynamicPage($posts) {
    global $wp,$wp_query;
    $page_slug = "testpage";
    $page_id = -34343343;
    if ((!$this->postExists($posts)) && ((strtolower($wp->request) == $page_slug)) || ($wp->query_vars['page_id'] == $page_slug)) {
        $post = new stdClass;
        $post->post_author = 1;
        $post->post_name = $page_slug;
        $post->guid = get_bloginfo('wpurl' . '/' . $page_slug);
        $post->post_type = 'page';
        $post->post_title = $this->args['post_title'];
        $post->post_content =  $this->args['post_content'];
        $post->ID = $page_id;
        ....
        ....
        unset($wp_query->query["error"]);
        $wp_query->query_vars["error"]="";
        $wp_query->is_404 = false;
    }
    return $posts;
}

В моей установке WP5 условие IF в коде успешно выполняется, когда я попадаю на страницу URL / тестовую страницу. Тем не менее, в моей установке WP4, это никогда не проходит. При просмотре переменных $ wp и $ wp_query они всегда содержат нуль для запроса $ wp-> или $ wp-> query_vars при переходе по URL-адресу / testpage.

Я просмотрел все содержимое объектов $ wp и $ wp_query при достижении этой точки в коде, и, похоже, ничего не задано (должны быть нулевые или пустые значения), которые позволили бы мне условно проверить, запрашивается ли соответствующая страница.

Есть ли что-то другое, что мне нужно сделать в WP4, чтобы все работало так же, как в WP5?

Спасибо, Jab

...