Работаем с дополнительными полями в TextKit

Последнее время я увлекся дополнительными полями в WordPress, с их помощью можно делать хорошие сайты, например для партнерок. Мне они сильно пригодились для сайта под AviaSales.ru ^(https://www.aviasales.ru/affiliateprogram). Изначально на сайте уже была опубликована информация о некоторых городах, но ее было мало. Поэтому было принято решение собрать побольше информации и вывести её через дополнительные поля для каждого города.

Информация была собрана в CSV файле, в каждый столбец таблицы были размещены данные о конкретном городе, и встала задача, как правильно прописать эти данные в соответствующие посты на сайте. Конечно же первое, что пришло в голову — это найти плагин для импорта CSV. Было перепробовано множество плагином, но ни один не выполнял то, что нужно или делал это не правильно. Самый популярный исход — публиковались новые статьи с доп.полями, а не обновлялись старые. Например плагин CSV Importer, публиковал посты, но никак не хотел обновлять, то выкидывал сообщение о требовании добавить поле «Product_Name». В общем, убив весь день на импорт данных из CSV-файла в дополнительные поля постов, я так ничего и не добился, кроме «выноса мозга».

Я спросил в Twitter как можно решить данную задачу, но никто так и не подсказал, кроме Ленивого ^(https://lazyhomeless.ru/), который предложил делать это все «ручками» через SQL.

image

С SQL я особо не дружу, да и интуиция подсказывала, что там слишком много танцев с бубном. Интуиция говорила одно, а память напомнила о программе TexKit ^(https://textkit.ru/) «которая умеет работать с дополнительными полями и имеет еще кучу разных фишек».

Но оказалось, что в TexKit та же самая проблема, что и у WordPress плагинов — при импорте CSV файла, данные в постах не обновляются, а вместо этого публикуются новые посты. Я написал разработчикам программы, с просьбой сделать такую фичу, как обновление доп.полей при импорте. Какого же было мое удивление, когда уже на следующий день (не прошло и 24 часа), как фича уже была встроена в программу ^(https://textkit.ru/textkit-131-csv-import-demo-update/). Меньше суток потребовалось разработчикам, чтобы встроить нужный пользователю функционал. За такую оперативность, отдельное спасибо!

Как работать с программой?

Покажу на примере с одним постом, но это также будет работать, если вы сделаете экспорт всех постов в вашей CMS, а потом импортируете полученный .xml файл в TexKit.

image

У нас есть пост с названием «altblog» у которого как видно на скриншоте нет никаких доп.полей, и мы хотим прописать для него дополнительные поля: Rating и Quality. Для это мы создаем CSV файл со следующими столбцами:

image

Название — это заголовок статьи, в которые будут импортироваться дополнительные поля (их может быть сколько угодно) Rating и Quality.

После этого открываем меню «Импорт» в программе TexKit и выбираем пункт «CSV (Exel)». Выбираем файл который мы создали, с доп.полями и у нас появляется следующие окно:

image

В параметрах импорта «Обновлять существующие записи проекта по указанному полю» выбираем «Название» и нажимаем кнопку «Импорт» и получаем обновленный пост с доп.полями:

image

Готово! Также можно обновлять цены в интернет-магазине, через загрузку вашего Exel файла. Проще и быть не могло. Теперь я могу вывести значения любого доп.поля на странице поста, с помощью следующего кода:

<?php echo (get_post_meta($post->ID, ‘Rating’, true)); ?> — покажет значение доп.поля с именем «Rating», в нашем случае оно ровно 4,5.

Это все просто и понятно. Но, что делать если мы встроили вывод доп.поля в некий шаблон, типа:

Этот пост имеет рейтинг в <?php echo (get_post_meta($post->ID, ‘Rating’, true)); ?> балла, поэтому я рекомендую вам его прочитать.

Если доп.поле прописано у поста, то у нас появится надпись:

Этот пост имеет рейтинг в 4,5 балла, поэтому я рекомендую вам его прочитать.

Но, если доп.поле не б

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: