Importar para Wordpress de um banco de dados qualquer

35 views
Skip to first unread message

Sérgio Vilar

unread,
Nov 20, 2010, 5:35:29 PM11/20/10
to wordpres...@googlegroups.com
Galera,
Eu tô com um banco de dados aqui aleatório, de um CMS desenvolvido por um cara aí.
E tô precisando importar o conteúdo dele para o Wordpress.

Alguém sabe me dizer se há uma forma fácil de fazer isso?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sérgio Vilar
Desenvolvedor Web, João Pessoa - Paraíba.
Php, MySQL, xHtml, CSS, Javascript, Smarty e Wordpress.
Mac OSX Snow Leopard user
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Hagg Interativa | http://hagg.com.br
Analista e Desenvovedor Web
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
http://twitter.com/Feelsen
http://www.flickr.com/photos/sergio_vilar
http://lastfm.com/user/Riurak
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+55 83 8826-7477 (Oi)
+55 83 9627-4442 (Tim)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"E conhecereis a verdade e a verdade vos libertará ."
João 8:32

Dellanio Alencar

unread,
Nov 20, 2010, 11:14:02 PM11/20/10
to wordpres...@googlegroups.com
Olá Sérgio!

Dando uma lida na tua pergunta aqui te informo que existem várias maneiras de fazer isso. Em resumo, é só criar uma rotina que selecione todos os posts do seu antigo CMS e agrupá-los em um array no formato do post do Worpress (ex: ID,post_author,post_date,post_date_gmt,post_content post,_title,post_excerpt....etc - vide estrutura da tabela wp_posts)  

==========================================================

[fazer conexão com o seu bd de sua maneira preferencial]
ex: $conn = mysql_connect($DBHost,$DBUser,$DBPassword);
mysql_select_db($DBName,$conn); 

/* CARREGA WP-CONFIG E AGREGADOS AHUAHUAHA*/
require('./wp-load.php'); <--- atenção ao caminho

/* TRANSFORMAR CONTEÚDO DA TABELA ANTIGA NO FORMATO WORDPRESS*/
$i = 0;
while ($row = mysql_fetch_array($results,MYSQL_ASSOC)) {
  $post = array();
  $post['post_status'] = 'publish';
  $post['post_category'] = array(4);
  $post['post_date'] = date('Y-m-d H:i:s',strtotime($row['newsitem_date']));
  $post['post_title'] = $row['newsitem_title'];
  $post['post_content'] = $row['newsitem_content'];
  ...
  {preencha demais colunas e faça os ajustes nas imagens}

  /JOGA TODOS OS POSTS EM UM ARRAY
  $posts[$i] = $post;

  $i++;
}


foreach ($posts as $post) {
  wp_insert_post($post); 
}
=====================================

depois é so rolar esse script em uma página no teu diretório wordpress ajustando o caminho do require wp-load.php e pronto. No caso de imagens você vai ter que fazer um tratamento melhor nas entradas pois o wordpress armazena na coluna (post_content) o caminho absoluto para as imagens.

Caso deseje poderá chamar a função wp_insert_post diretamente dentro do loop do while (ex: wp_insert_post($post) ). Essa maneira ai apenas agrupa todos os seus posts em um array.

Blz?

FLWS

T+ 

2010/11/20 Sérgio Vilar <sergio...@gmail.com>
--
Você recebeu esta mensagem por estar inscrito na lista de debates "WordPress Brasil" através do sistema Google Groups.
 
Para enviar uma mensagem: wordpres...@googlegroups.com
Para cancelar sua inscrição: wordpress-bras...@googlegroups.com
Para visitar o grupo: http://groups.google.com.br/group/wordpress-brasil?hl=pt-BR
 
Temas: http://wordpress.org/extend/themes/
Plugins: http://wordpress.org/extend/plugins/
Projeto WordPress: http://br.wordpress.org/



--
Adm. Dellânio Alencar
----------------------------------------------------
Analista de Tecnologia da Informação
E-mail: con...@dellanio.com
(+55 (83) 8808-5762)


Sérgio Vilar

unread,
Nov 21, 2010, 2:03:35 PM11/21/10
to wordpres...@googlegroups.com
Olá Dellanio, valeu pela dica.

Dá pra me tirar uma dúvida ou me ajudar?
Olha só, meu código tá da seguinte forma:

$posts = array(

  'ID' => $id, //Are you updating an existing post?
  'comment_status' => 'open', // 'closed' means no comments.
  'post_author' => '1', //The user ID number of the author.
  'post_category' => array($cat), //Add some categories.
  'post_content' => $row[1], //The full text of the post.
  'post_date' => date('Y-m-d H:i:s', $row[5]), //The time post was made.
  'post_status' => 'publish',
  'post_title' => $row[0], //The title of your post.
  'post_type' => 'post' //Sometimes you want to post a page.
  //'tags_input' => '<tag>, <tag>, <...>' //For tags.
 
);  
}

foreach ($posts as $post) {
echo "processando post...<br />";
sleep(1000);
  echo wp_insert_post($post); 
}

E estou recebendo o seguinte erro:

Warning: array_map() [function.array-map]: Argument #2 should be an array in /Applications/MAMP/htdocs/wordpress/wp-includes/post.php on line 1426



- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sérgio Vilar
Desenvolvedor Web, João Pessoa - Paraíba.
Php, MySQL, xHtml, CSS, Javascript, Smarty e Wordpress.
Mac OSX Snow Leopard user
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Hagg Interativa | http://hagg.com.br
Analista e Desenvovedor Web
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
http://twitter.com/Feelsen
http://www.flickr.com/photos/sergio_vilar
http://lastfm.com/user/Riurak
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+55 83 8826-7477 (Oi)
+55 83 9627-4442 (Tim)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"E conhecereis a verdade e a verdade vos libertará ."
João 8:32


Reply all
Reply to author
Forward
0 new messages