kwork banner 468x60kwork banner 728x90kwork banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180smsc banner 468x60smsc banner 728x90smsc banner 930x180

Как импортировать данные из excel в WordPress

При работе с WordPress часто возникает необходимость обработки табличных данных. Сегодня мы рассмотрим пример, как импортировать данные из excel на сайт на WordPress. В качестве инструмента будем использовать простую библиотеку SimpleXLSX, а о том, как с ней работать мы разбирали ранее.

Библиотека должна быть подключена следующим образом:

require_once get_template_directory() . '/includes/plugin-additions/simplexlsx.class.php';

Для примера рассмотрим простую таблицу с контактами:

Для ее обработки использует такой код:

// Simple XLSX Parser Template
$fileImport = get_stylesheet_directory() . '/data/example.xlsx';
if ( $xlsx = SimpleXLSX::parse( $fileImport )) {
	$sheetData = $xlsx->rows(1);

	$array = array();

	foreach ( $sheetData as $keyD => $sheetRow ) {
		if ( $sheetRow['0'] && $sheetRow['1'] ) {
			$array[$sheetRow['0']] = $sheetRow['1'];
		}
	}
	var_dump( $array );

} else {
	var_dump( SimpleXLSX::parse_error() );
}

В результате, в переменной $array у нас должен оказаться такой массив:

array(6) {
  ["address"]=>
  string(65) "м. Савёловская, ул. Вятская улица 35с4"
  ["geo"]=>
  string(20) "55.798401, 37.580502"
  ["working-days"]=>
  string(11) "Пн.-Пт."
  ["working-hours"]=>
  string(15) "10:00 — 18:00"
  ["mail"]=>
  string(20) "webdev1992@yandex.ru"
  ["phone"]=>
  string(18) "+7 (800) 600-50-40"
}

Для того, чтобы сохранить в опции сайта используем этот код:

if ( isset( $array ) && !empty( $array ) ) {
	update_option( '_test_data', $array, 'yes' );
}

Учитывайте, что последний аргумент влияет на то, будет ли эта опция автоматически подгружаться в память при инициализации WordPress. Если указать значение yes, то функция get_option() возьмет данные из кеша, а если no, то сделает дополнительный запрос в базу. Т.е. параметр yes/true стоит использовать, если эта опция понадобится на всех страницах.

Т.к. в нашем примере у нас таблица с контактными данными, то, скорее всего, они будут на всех страницах сайта в подвале, поэтому устанавливаем yes.

Получить данные из опции можно следующим образом:

if ( $test_data = get_option( '_test_data', false ) ) {
	var_dump( $test_data['address'] );
}
skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600smsc banner 480x320smsc banner 728x90smsc banner 120x600flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как сделать 301 редиректы с помощью excel в WordPress

Сегодня мы рассмотрим довольно распространенный сценарий: вы переносите сайт откуда-то куда-то, у вас есть список старых ссылок и список новых ссылок. Ваша задача сделать так, чтобы при заходе по старой ссылке шел редирект на новую ссылку. Это важно как для поисковиков, так и для пользователей — чтобы при переходе по ссылкам у вас не было…
Подробнее