X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Wordpress: как добавить много записей одной командой?
prolisk
prolisk
Topic Starter сообщение 24.12.2015, 15:45; Ответить: prolisk
Сообщение #1


Есть файл екселевский с разными данными: Название поста, рубрика, произвольные поля (5 штук).
Около 80 строк. Хочу добавить все данные в записи за раз, чтобы вручную не постить кучу всего.

Как лучше сделать? Обязательно должны добавляться произвольные поля.
С плагинами импортов такого характера не знаком, а в БД в базе _posts полей для произвольных не нашел.

Добавлено спустя 12 минут 30 секунд:
Еще нужно задействовать базу _postmeta.
В общем в _posts выполняем:
INSERT INTO wp_posts(post_title, post_name) VALUES ('valera', 'valera');

Но по произвольным полям еще нужно разобраться в автоматике...


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
minedark
minedark
сообщение 24.12.2015, 15:49; Ответить: minedark
Сообщение #2


Думаю тебе поможет вот такой плагин - Really Simple CSV Importer
Устанавливаешь и включаешь. Затем идешь - Инструменты - импорт и выбираешь CSV
Прикрепленное изображение

Прежде всего убедись, что формат ексель файла именно CSV(на всякий случай)
Первый ряд таблицы которая содержится в CSV файле должны быть колонки такого типа:
Прикрепленное изображение

Порядок указания столбцов не имеет значения, хоть наоброт.
Плагин имеет свой CSV и ODT файлы в корне плагина в папке с примерами.
По умолчанию плагин присваивает post_type - Запись, а post_status - Черновик. (но их можно переопределить)
Дальше остается выбрать файл и нажать одну кнопку, как вы и хотели)
Прикрепленное изображение

Вот такой вариант, может вам и подойдет)

Надеюсь этот плагин вам поможет. :beach:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
Topic Starter сообщение 24.12.2015, 19:32; Ответить: prolisk
Сообщение #3


(minedark)
должны быть колонки такого типа

я уверен, что как и в запросе по mysql, некоторые колонки вводить не обязательно. ВП подставит значения по умолчанию.
В целом полезно для 100+ столбцов, спасибо, плюсую.
Но вот узнать бы еще какой индекс в базе для каждого из произвольных полей.
Пойду копаться ;)

Добавлено спустя 8 минут 17 секунд:
Плагин если что Really Simple CSV Importer (постом выше ошибочка)

Добавлено спустя 29 минут 24 секунды:
В общем, если пример файла заливаешь - все работает.
Если редактируешь и сохраняешь (даже кодировку меняешь на УТФ8) - ошибка.
Дело в кодировке, попробую не csv, а прогу для ods.

Еще главный вопрос - как прописывать ПРОИЗВОЛЬНЫЕ ПОЛЯ?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
minedark
minedark
сообщение 24.12.2015, 21:36; Ответить: minedark
Сообщение #4


prolisk, мог не увидеть) больше к сожалению подсказать не могу)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
Topic Starter сообщение 26.12.2015, 0:44; Ответить: prolisk
Сообщение #5


(minedark)
больше

и так спасибо, понял куда и как копать.
Все равно решаю через базу все сделать, сам наверное скрипт цикла набросаю.

Добавлено спустя 13 часов 32 минуты 11 секунд:
Было сложновато, но я все таки решил задачу :)Проблема была именно в произвольных полях.
Все таки упростил работу через Really csv import, настроил csv файл, но не по примеру, а своими штучками. Все произвольные поля добавил в конце.
Сохранил в формате .csv (разделители), в кодировке UTF-8, А потом через notepad+ открыл и автозаменой все ; заменил на , :)
Более подробно со скринамы скоро в блоге напишу )


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MAzZY
MAzZY
сообщение 28.12.2015, 22:18; Ответить: MAzZY
Сообщение #6


Есть функция wp_insert_post. Она все вопросы решает на ура

Добавлено спустя 3 минуты 8 секунд:
Вот один пример, как я мигрировал сайт с одного двига на ВП

<?php
echo '<!DOCTYPE html><html  lang="ru-RU"><head><meta charset="UTF-8"></head><body>';
set_time_limit(0);
require_once( '/wp-load.php');
//База
$hostname = "localhost";
$username = "astro";
$password = "astro";
$dbName = "astro";
//Исходная таблица
$userstable = "tree";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение");
mysql_select_db($dbName) or die(mysql_error());  

$query = "SELECT * FROM $userstable WHERE `parent_id` =28";
$res = mysql_query($query) or die(mysql_error());  //Исходные данные
$i=0;

while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
    $post_id = wp_insert_post( //Создаём посты
    array(
        'post_title'    => $row["name"],
          'post_content'  => $row["text"],
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_category' => array(7)
        //'post_type'      => 'page' //Тип - запись или страница
    ),
    $wp_error);

$ins = "INSERT INTO `wp_postmeta`(`post_id`, `meta_key`, `meta_value`) VALUES ('".$post_id."','_aioseop_title','".$row["title"]."')"; //All-in-One SEO
$res_ins = mysql_query($ins) or die(mysql_error());
usleep(200);

$i++;
echo '<br>';
}
echo $i;
echo '</body></html>';
?>


--------------------
Подпись <!-- s:) --><img src="{SMILIES_PATH}/smile.gif" alt=":)" title="smile" /><!-- s:) -->
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
Topic Starter сообщение 29.12.2015, 11:16; Ответить: prolisk
Сообщение #7


MAzZY, да я через базу делал простые запросы (без произвольных полей).
А для своей задачи (тайтл, нейм, категория, теги + 6 произвольных полей) - настроил плагин.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MAzZY
MAzZY
сообщение 29.12.2015, 12:58; Ответить: MAzZY
Сообщение #8


(prolisk)
я через базу делал простые запросы


В ВП так нельзя. Информация о посте вписывается в несколько таблиц, поэтому обязательно нужно использовать штатный инструмент, иначе потом будет много проблем


--------------------
Подпись <!-- s:) --><img src="{SMILIES_PATH}/smile.gif" alt=":)" title="smile" /><!-- s:) -->
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
Topic Starter сообщение 29.12.2015, 13:35; Ответить: prolisk
Сообщение #9


(MAzZY)
Информация о посте вписывается в несколько таблиц,

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


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops_hb
andreykashops_hb
сообщение 13.1.2016, 13:22; Ответить: andreykashops_hb
Сообщение #10


prolisk, проблема в том, что при импорте данных через SQL, нужно вначале отправить запрос на вставку записи, получить ID этой записи, а только потом кастомные поля добавлять. Одним INSERT не отделаешься <_<
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1117 26.3.2024, 14:13
автор: knezevolk
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
12 uahomka 2284 25.3.2024, 6:52
автор: Skyworker
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
28 metvekot 3911 25.3.2024, 6:34
автор: Skyworker
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
23 freeax 3636 24.3.2024, 20:55
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1929 23.3.2024, 7:41
автор: Room


 



RSS Текстовая версия Сейчас: 28.3.2024, 17:00
Дизайн