Intereting Posts
Получить изображение с одной страницы и показать / добавить его на другой странице Проблемы с созданием hook, который обновляет XML Страница архива таксономии для родителей и детей? Как получить дочернюю тему для загрузки скриптов из родительской темы? Как отображать ID видео Youtube / Vimeo в пользовательском типе сообщений, когда пользователь вводит его в пользовательский мета-ящик? Функция плагина с вложенными запросами Как я могу подключить и редактировать «на лету» загруженное изображение Устраните кнопку свернуть меню на веб-сайте Можем ли мы подключить статический метод класса к add_action внутри этого класса? Как достичь этой постоянной ссылки -> category-name / custom-post-type-name / post-name Вставить запрос, не работающий для не зарегистрированных пользователей wp E-commerce предлагает плагин продукта с опцией muliple? Использование чего-то другого вместо 9 wp_query Как сделать настройки «Страницы в блогах не более» не влияют на пользовательские запросы Как получить главную страницу div контейнера сайта WordPress для отображения полной ширины?

Получение дублирующей страницы при активации моего плагина

Я создаю плагин, в котором мне нужно создать динамическую страницу и назначить ей шаблон. Я создал его, используя следующий код:

function gallerypage() { global $wpdb; $check_page = $wpdb->get_row( "SELECT * FROM wp_posts WHERE post_name = 'archive-gallery'" ); if ( ! $check_page ) { $page_time = the_time( 'Ymd g:i:s' ); $gallery_page = array( 'post_title' => 'Archive Gallery', 'post_content' => 'This page is dedicated to the archive gallery. and it is used to show all the gallerys', 'post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_slug' => 'archive-gallery', 'post_date' => $page_time ); //$wpdb->update($wpdb->prefix.'pn_options', array('option_value'=>$post_id), array('id'=>'10')); $p_ID = wp_insert_post( $gallery_page ); update_post_meta( $p_ID, "_wp_page_template", "archivegallery.php" ); } } add_action( 'init', 'gallerypage' ); 

Проблема в том, что когда я активирую плагин, страница создается снова и снова, например, обновления на фондовом рынке. Что я делаю не так?

Если результат не найден, $wpdb->get_row вернет NULL не false
https://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row

Вы используете add_action('init', 'gallerypage'); поэтому он работает на каждой нагрузке. Вы должны использовать register_activation_hook чтобы он запускался только при активации плагина. https://codex.wordpress.org/Function_Reference/register_activation_hook

Попробуйте использовать get_page_by_path() чтобы проверить, существует ли страница. Тогда вам не нужно использовать глобальный и пользовательский sql- $wpdb . https://codex.wordpress.org/Function_Reference/get_page_by_path