Сценарий ниже берет именованный файл, который находится в папке «myplugin» (папка, в которой находится сам скрипт), и запускает file_get_contents () для загрузки содержимого в память, а затем выполняет некоторую предварительную обработку содержимого перед наконец, вставив его как запись в базу данных WordPress с помощью метода wp_insert_post.
$my_post3 = array();
$my_post3['post_title'] = 'Privacy Policy';
if(file_exists(ABSPATH.'/wp-content/plugins/myplugin/pages/privacy_policy.txt'))
{
$my_privacy_policy = file_get_contents(ABSPATH.'/wp-content/plugins/myplugin/pages/privacy_policy.txt');
}
else
{
$my_privacy_policy = "";
}
$my_post3['post_content'] = addslashes($my_post3_replace);
$my_post3['post_type'] = 'page';
$my_post3['post_status'] = 'publish';
wp_insert_post($my_post3);
Этот метод работает довольно хорошо. Однако этот метод заставляет меня писать разные процедуры для каждого файла, который я хочу использовать в качестве основы для новой страницы.
Вместо этого я хотел бы создать папку с именем "pages" и поместить в нее мои файлы .txt, а затем запустить цикл for для содержимого папки, создав новую страницу для каждого файла в папке. , Я хотел бы использовать имя файла (без расширения .txt) в качестве имени страницы.
Например, в папке страниц могут быть следующие файлы:
О Us.txt
Свяжитесь с нами.txt
И эта процедура приведет к созданию двух новых страниц на сайте WordPress, одна из которых называется «О нас», содержащая содержимое, найденное в этом файле. Другая страница, конечно, будет «Связаться с нами» с содержимым этого файла.
Таким образом, я могу просто вставить неограниченное количество именованных и предварительно заполненных .txt файлов в эту папку, и когда я активирую свой плагин, он создает эти страницы.
Мне просто нужна помощь с циклом for и как обращаться к папке и файлам.
У меня также будет папка «posts», которая будет делать то же самое для постов, что и эта процедура для страниц.
Заранее благодарим за помощь и предложения.
Обновление на основе ответа @clientbucket:
DEFINE ('PAGES', './pages/');
$directory_pages = new DirectoryIterator(PAGES);
foreach ($directory_pages as $files) {
if ($files_pages->isFile()) {
$file_name_page = $files_pages->getFilename();
$my_page_content = file_get_contents(PAGES. $file_name_page);
$my_page['post_content'] = addslashes($my_page_content);
$my_page['post_title'] = $file_name_page;
$my_page['post_type'] = 'page';
$my_page['post_status'] = 'publish';
wp_insert_post($my_page);
}
}
DEFINE ('POSTS', './posts/');
$directory_posts = new DirectoryIterator(POSTS);
foreach ($directory_posts as $files_posts) {
if ($files_posts->isFile()) {
$file_name_post = $files_posts->getFilename();
$my_post_content = file_get_contents(POSTS. $file_name_post);
$my_post['post_content'] = addslashes($my_post_content);
$my_post['post_title'] = $file_name_post;
$my_post['post_type'] = 'post';
$my_post['post_status'] = 'publish';
$post_id = wp_insert_post($my_post);
stick_post($post_id);
}
}
Неустранимая ошибка: необработанное исключение «UnexpectedValueException» с сообщением «DirectoryIterator :: __ construct (./ pages /) [directoryiterator .-- construct]: не удалось открыть каталог: нет такого файла или каталога» в C: \ xampplite \ htdocs \ mytestsite \ сор-контента \ Plugins \ myplugindirectory \ myplugin.php: 339
Строка 339 здесь> $ directory_pages = new DirectoryIterator (PAGES);