О web-разработке
и даже немного больше...

Импорт записей из Excel в WordPress

Файлы excel довольно часто используются импорта и экспорта некоторого набора данных. По этой причине иногда может возникать необходимость импорта данных из файла с расширением xlsx в WordPress. Сразу стоит сказать, что по умолчанию импортировать данные в формате xlsx WordPress не умеет. По этой причине есть необходимость поиска какого-либо решения для импорта данных. Вероятно, существует какие-либо плагины, выполняющие роль импорта данных из excel-файла в записи. Однако мы пойдём иным путём, и реализуем импорт данных программно. Особенность такого метода в том, что мы может осуществлять различную логику импорта, что делает данные метод более гибким. Давайте приступим к примеру.

Библиотека PHPExcel

Для того чтобы работать с файлами excel рекомендуется воспользоваться готовой библиотекой PHPExcel. На нашем сайте было несколько постов, где рассматриваются вопросы использования библиотеки, ссылки на них будут в конце поста. Саму библиотеку PHPExcel вы можете скачать с репозитория на GitHub.

Основной файл библиотеки, который мы будем подключать находится в папке Classes и называется PHPExcel.php. Далее поговорим про использование библиотеки в коде.

Скрипт импорта xlsx в WordPress

Для удобства создадим отдельную директорию на сервере, с названием tools. В этой папке мы распаковываем архив библиотеки PHPExcel, а также создаём сам скрипт для импорта данных, назовём его read.php. В итоге мы получаем такое содержимое:

Далее рассмотрим структуру нашего файла excel. Для простоты примера у нас будет несколько колонок в таблице, выглядеть наш файл для импорта будет таким образом:

Первая колонка – название записи, вторая – текст описания, в формате html, третья колонка – метка записи. Файл импорта будет иметь название import.xlsx и добавить его так же нужно в папку tools. Теперь рассмотрим непосредственно сам код импорта данных из файла.

Открываем файл read.php и приступаем непосредственно к коду:

<?php

// подключаем ядро WordPress
require_once( '../wp-load.php');

// подключаем библиотеку PHPExcel
require_once './PHPExcel-1.8/Classes/PHPExcel.php';

// загружаем файл импорта
$excel = PHPExcel_IOFactory::load('./import.xlsx');

// получаем содержимое файла XLSX
Foreach($excel ->getWorksheetIterator() as $worksheet) {
	$lists = $worksheet->toArray();
}

// перебераем строки, записываем в базу
foreach ($lists as $arField){
	
	// массив для новой записи
	$post_data = array(
			'post_title' => $arField[0], // название записи
			'post_content' => $arField[1], // текст записи
			'post_status' => 'publish', // статус публикации записи
			'post_author' => 1,			// ID автора поста
			'post_category' => array(759), // ID рубрик для записи
			'tags_input' => $arField[2] // метка записи
		);

	// добавление записи
	$post_id = wp_insert_post($post_data, true);
	if ($post_id > 0){
		
		echo 'Пост '. $arField[0] .' добавлен успешно, id поста: '.$post_id;
		
		// при использовании произвольных полей, можно так же задавать значения
		// update_post_meta($post_id , 'person_name', 'какое-либо значение');

	} else {
		echo 'Ошибка добавления записи: ' . $arField[0];
	}
}

?>

Рассмотрим комментарии в коде вы можете наглядно понять, как происходит процесс импорта. В начале подключается ядро самого WordPress, нужно оно ровно для того, чтобы мы могли пользоваться встроенными функциями ядра движка сайта. Далее подключается библиотека PHPExcel. С помощью библиотеки мы загружаем и считываем данные из файла xlsx. В качестве результата мы получаем массив с полями из файла. Далее в цикле мы перебираем массив, и создаём записи посредством встроенное функции wp_insert_post. Используя документацию по WordPress выполнять манипуляции с данными, мы можем так, как требуется для каждого конкретного случая.

Собственно, менять логику импорта вы можете так как вам потребуется. Так же на нашем сайте были посты касательно вопросов использования PHPExcel, вероятно они могут оказаться вам полезными:
PHPExcel — OpenXML — чтение, запись и создание документов Excel в PHP
PHPExcel: форматирование ячеек
Ошибки PHPExcel при переносе на боевой сервер

На этом у меня всё, всего доброго!

Опубликован: 17.07.2020 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP
Как сделать мобильную версию сайта на Битрикс?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта