[Помогите] Каким SQL запросом можно добавить новость в вордпресс?

Тема в разделе "Wordpress", создана пользователем dumaton, 30 янв 2010.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. dumaton

    dumaton Писатель

    Регистр.:
    14 окт 2008
    Сообщения:
    7
    Симпатии:
    4
    Переношу сайт на вордпресс, пишу конвертер, собственно вопрос. Каким SQL запросом(и) можно добавить новость в вордпресс.
    Добавлял новую запись в таблицу wp-posts, но она не публикуется и не отображается в админке. Из чего напрашивается вывод что нужно еще где то что то добавить, если кто сталкивался, подскажите.
     
  2. nabber

    nabber

    Регистр.:
    14 дек 2006
    Сообщения:
    162
    Симпатии:
    16
    Если с DLE переносиш то вот так примерно

    INSERT INTO wp_posts
    (id, post_date, post_content, post_title, post_name)
    SELECT
    id, date, full_story, title, alt_name
    FROM
    dle_post

    по аналогии можно с любой другой базы сделать да тут я поленился но можно еще и номер категории добавить
     
  3. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52
    а свой SQL запрос можешь привести? автор записи существует на момент добавления поста?
    в wp за вставку нового поста отвечает функция wp_insert_post, которая по сути делает запрос к таблице пост с параметрами - то есть вставки в эту таблицу должно хватить, если параметры верные
     
  4. dumaton

    dumaton Писатель

    Регистр.:
    14 окт 2008
    Сообщения:
    7
    Симпатии:
    4
    Данные в таблицу добавляются корректно, по ссылке из запроса можно попасть на статью http://mysite.ru/?p=10000, но она не отображается ни в одной категории, ни в админке не на сайте. Я предполагаю, что для каждой новости, нужно делать еще один запрос который бы относил ее в определенную категорию, но только какой?

    Пример запроса, которым добавляю данные:
    Код:
    insert into `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) values('10000','1','2010-01-30 16:11:11','2010-01-30 11:11:11','Текст статьи', 'Заголовок статьи', '0','','publish','open','open','','tekst-stati','','','2010-01-30 16:17:52','2010-01-30 11:17:52','','0','http://mysite.ru/?p=10000','0','post','','0');
    Версия WordPress - 2.8.5
    Структура wp-posts стандартная, но приведу на всякий случай:
    Код:
    create table `wp_posts` (
    	`ID` double ,
    	`post_author` double ,
    	`post_date` datetime ,
    	`post_date_gmt` datetime ,
    	`post_content` blob ,
    	`post_title` blob ,
    	`post_category` double ,
    	`post_excerpt` blob ,
    	`post_status` varchar (60),
    	`comment_status` varchar (60),
    	`ping_status` varchar (60),
    	`post_password` varchar (60),
    	`post_name` varchar (600),
    	`to_ping` blob ,
    	`pinged` blob ,
    	`post_modified` datetime ,
    	`post_modified_gmt` datetime ,
    	`post_content_filtered` blob ,
    	`post_parent` double ,
    	`guid` varchar (765),
    	`menu_order` double ,
    	`post_type` varchar (60),
    	`post_mime_type` varchar (300),
    	`comment_count` double 
    );
    Насчет wp_insert_post читал документацию: http://codex.wordpress.org/Function_Reference/wp_insert_post
    но это не совсем то что нужно, хотелось бы обойтись без обращения к движку вордпресса.
     
  5. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52
    да, верно что не видно не в одной категории, привязка к категории идет в таблице term_relationships, где два основных параметра - номер поста и номер таксономии (категории или тега)

    но это по сути не влияет на вставку поста, только что попровал запросом вставить пост в wp 2.9.1, вот сам запрос

    Код:
    INSERT INTO `test`.`teat_posts` (`ID` , `post_author` ,`post_date` ,`post_date_gmt` ,`post_content` ,`post_title` ,`post_category` ,`post_excerpt` ,`post_status` ,`comment_status` ,`ping_status` ,`post_password` ,`post_name` ,`to_ping` ,`pinged` ,`post_modified` ,`post_modified_gmt` ,`post_content_filtered` ,`post_parent` ,`guid` ,`menu_order` ,`post_type` ,`post_mime_type` ,`comment_count`)
    VALUES ('6', '2', '2010-01-31 00:00:00', '2010-01-25 00:00:00', 'йуйуйц', 'уцуцуц', '2', 'йцуйцуйц', 'pending', 'open', 'open', '', 'cool', '', '', '2010-01-31 00:00:00', '0000-00-00 00:00:00', '', '0', 'qewqwewq', '0', 'post', '', '0'
    );
    у меня все нормально, пост в админке виден, значит вы в чем то еще накосячили
     
  6. dumaton

    dumaton Писатель

    Регистр.:
    14 окт 2008
    Сообщения:
    7
    Симпатии:
    4
    Всем спасибо кто отписался. К сожалению так и не удалось найти информацию как с помощью с SQL-запроса корректно вставить запись в вордпресс (чтобы запись отобразилась везде где нужно, с прописыванием в нужной категории и т.д.). Максимум что удалось добиться - вставить данные в базу, они появились в админке в категории по умолчанию (запрос приведенный xbreaker работает).
    В итоге был написан конвертер в xml, из которого данные были загружены встроенными средствами вордпресса.
     
Статус темы:
Закрыта.