Спонсор поста: дешево? в топ? cheaptop.ru — регистрация в каталогах сайтов и статей.
Тук.
Тема сегодняшнего урока Благодаря тому, что мне посчастливилось озадачиться автоматическим наполнением сайта с большого экселовского файла, сегодня поговорим об импорте данных из .csv в WordPress. Не всегда ж синонимайзить, можно и в других местах уникальный контент поискать
На этом тонкий намек окончен и мы приступаем к действиям.
Очень помогла в этом плане вот эта запись [англ]. Также в буржуйнете встречал парочку плагинов за 20/100 Евро, которые прямо напичканы функциональностью – все для того, чтоб вы купили. Ну а мы будем пользоваться бесплатными решениями.
1. Качаем скрипт. Заливаем скрипт в —> /wp-admin/import/ и успокаиваемся. Топаем в админку и смотрим Импорт —> CSV, если есть, то хорошо.
2. Готовим наш вкусный Excel-файл для заливки на блог. [С первого раза обычно не получается, поэтому нужно несколько раз попробовать на нескольких параметрах, чтобы потом залить большой файл, ну, если он большой))] С недавних пор я работаю с OpenOffice.org, поэтому если для продуктов Microsoft может быть чуть по-другому. Но суть одна и та же — в итоге должен получиться файл совершенно однозначно структурированный.
Первые пять рядов [сверху вниз должны называться только так и только в таком порядке]:
wp_title wp_post_date wp_category wp_content wp_tags
Только строчка 1-я, а не 24-я.
Упорядочиваем наши *данные* в соответствии с этими столбиками. С тайтлами все ясно, а с датами небольшие проблемы. Для базового формата даты, а именно ‘F j, Y’ как в настройках админки/темы я использовал такой формат дат [Изображение из Notepad++]:
Эти записи выводятся по датам: January 18th, 2009, January 17th, 2009, January 16th, 2009. А вот в Excel-образных продуктах с датами небольшой косяк. Они не воспринимают 09/01/16 как 16е Января 2009, а воспринимают его, как 9е Января 2016. [если много разных дат и отложенная публикация вас не интересуют следующий абзац можете не читать]
Поэтому идем в формат ячейки и задаем там формат Дата —> 99-12-21. Как бы наоборот, что нам и нужно. Это позволяет нам автоматически [что важно] продолжить ход дат, а не вручную все исправлять. Впоследствии мы в Notepad++ заменяем эти “-” на “/”. Забыл сказать, в нашем плагине-скрипте используется разделитель “|” – так что нам также нужно будет в Notepad++ заменить ваш разделитель [скорее всего это ";"] на “|”.
С категориями понятно, теперь контент. Если контент наш в столбике wp_content на русском, то необходимо обязательно кодировать .csv файл в UTF-8 [без BOM], не забывайте. На контент вроде лимитов быть не должно [кликабельно]:
Есть только лимит на размер загружаемого файла. 2 метра. Эта фича не плагина, эта фича WordPress’а и как ее сломать я, к сожалению не нашел. В англоверсии при загрузке фала большего объема выводит “Are you sure you want to do this?” и ссылку на “Попробовать еще разок”. А. Проблема по всей видимости вовсе не в WP, а в .php. Итак, читаем статью или гуглим [для любителей]. Там все понятно расписано, к тому же и с предусмотрением еще одной проблемы – максимального времени выполнения скрипта, которое нам также нужно увеличить. Я не пробовал, но как попробую выложу здесь UPD.
Так, какие еще есть тонкости… Можно задавать Custom fields, по-русски это вроде называется Произвольными полями. Порядок действий – обзываете колонку [6ю например] таким образом, чтобы название колонки совпадало с тем произвольным полем, которое нужно добавить. Содержание конкретной ячейки – содержание конкретного произвольного поля конкретного поста.
Также можно настроить заливку не в Записи [Posts], а на Страницы [Pages] и даже, вроде, на подстраницы, что тоже в некоторых случаях весьма вкусно. Нужно лишь чуть подредактировать код скрипта, если кому нужно – спрашивайте, расскажу.
И еще пара слов об Excel [Calc в моем случае]. Если вам нужно объединить несколько колонок в одну, используем стандартную функцию:
=A6 &A7 &A8 &A9
Этим мы объединяем ячейки в одну [речь о тексте
].
Если нужно добавить знаки препинания, делаем так:
=A6 &”,” & A7 &”,” & A82
Такая же штука с пробелами, вот. Но теперь появилась другая проблема – содержимое этой [собирающей] ячейки отображается нам как надо, а на деле – это формулы, что не есть хорошо для нашего файла. Поэтому мы копируем весь столбец – те данные которые нам нужны – вставляем его в Word [Writer] —> копируем эти данные и вставляем обратно, в столбец Excel [Calc] и получаем то, что нам нужно в том самом столбце, ага.
Ну и скрин того [данные замазал], как должен выглядеть файл в Notepad++ [кликабельно]:
На даты не смотрите – старый [почти что базовый] вариант, когда еще не допер как их победить. Усё. Добавляем, спрашиваем, интересуемся.
P.S. Помните писал про Google Wave? Так вот, хороший человек любезно поделился инвайтом, за что я его оч. благодарю. Кстати, вы также можете успеть получить инвайт на Google Wave







25 комментариев
все это конечно интересно но возникает вопрос
это только эксела косается или и других таблиц тоже
каких именно других?
скрипт создан для .csv файла, но Excel много чего открывает и много в чем сохраняет [в т.ч. и в .csv]. Также как и Calc.
Забыл, если открывать редактированный/созданный файл таблиц через Notepad++ иногда могут попадаться кавычки – “” – “wp_content”, “wp_tags” и т.д. Все кавычки [насчет текстов внутри столбца wp_content ничего сказать не могу] нужно убрать, они ни к чему.
|значение|значение|значение|значение|значение|
без кавычек.
Ошибаешься, Темыч
Могу тебе как программер сказать. Кавычки нужны, если у вас внутри значения встречается разделитель. (например, |)
Кстати, excel умеет и с другими типами csv работать (разные варианты разделителей, например – ; ). А вордпресс их поймет? Ты не пробовал?
Я-то не программер, ты же знаешь
Примерно понял, да. Ну знач проверить, встречается ли у нас внутри значений разделитель [например |] и, если нет, не использовать кавычки. Если да, удалить нафиг этот странный фрагмент значения и не использовать кавычки
Эксел распознает, я в курсе. У меня как раз первоначальный вариант .csv был с разделителем “;”. WordPress тут не особо при чем как я понял, дело в плагине – он требует разделителя “|”
Поэтому я заменял “;” на “|”, ага ^_^
хехе, типо тему палити, автоматизированный контент))
Вот Сео и Бульба такое палит в своих видеокастах, что мало не покажется. Как на Дупале на одном разместить кучу(сайтов) с отдельными доменами, экономя и рессурсы сервера и место на диске:))
Ну да ладно, се равно замазанный код выглидит ужастно((
Ну не то, что бы прям так… Просто сам столкнулся [скажем так], а прочитавший потратит меньше времени на все эти тонкости. Ну и в карму мне добавит, не все ж о мотивации писать
Вчерашний подкаст Seonet.by уже посмотрел, да. А на данный момент я не имею возможности ‘палить такое’.)
А Малевич бы оценил, мне кажется, не? =)
Не понял, а как это работает и для чего это вообще?
Seodaiter, смотри ниже, Вит все правильно написал.
Спасибо, за линк. Скоро будут находить меня по запросу хороший человек =) что приятно =)))
Кстати если нужен будет импорт для WP другой хитрый могу посоветовать человека, сам заказывал у него.
Пожалуйста)
Ок, обращусь по мере поступления идей импорта в WP
Seodaiter, это своего рода автоматическое наполнение блога. Полезно, когда нужно импортировать сразу несколько материалов.
зы за пост спасибо, как-нить на досуге досконально изучим.
Пожалуйста. Не откладывай на досуг то, что можно замутить уже сейчас
На ДЛЕ тоде есть такой аналог.
Не знаю, не работал. Количество дыр иногда смущает ^^
Темыч, а есть что нибудь для подобного наполнения, только не таблицы, а контент. Например из html или txt?
Заранее благодарен за ответ.
Круто. Надо разбираться. Жаль нет экспорта в вордпресс, тогда можно бы и формат посмотреть. Все равно спасибо.
по описанию – как раз то, что мне нужно. спасибо за статью – коротко и ясно.
вопрос такой: html форматирование поддерживает?
и еще – выложите пожалуйста скрипт куда-нить. ссылка к сожалению не работает.
Пожалуйста.
Не знаю, попробуйте, потом расскажете.
Выложил единственный сохранившийся у меня экземпляр, должно работать – http://7bloggers.ru/csv.rar
Спасибо )))
буду пробовать. позже отпишусь.
Ок, было бы неплохо.
Пробывал тоже самое делать, но ничего хорошего не получилось, хоть и старался
Почему в итоге получаются закорючки не понятно какой кодировки?
у меня тоже что то с кодировкой