2010-08-31 59 views
1

如何將WordPress帖子導出爲XML或CSV?我在PHP的幫助下尋找一個簡單的方法來完成它。如何導出WordPress的帖子?

注意:我不想通過管理面板來做,因爲我想自動化它。

回答

0

那麼根據Wordpress blog...

你會找到出口,並在您的博客 管理區現在導入下的「管理」選項 。 XML格式是RSS 2.0的一個擴展版本 ,它將被構建到下一個 可下載版本的WordPress (2.1)中。

3

從PHP這樣做,像這樣做:

  1. 獲取的所有帖子標誌着從數據庫publish
  2. 它們導出到使用以下array2xml函數數組:

<?php 
function array2xml($array, $name='array', $standalone=TRUE, $beginning=TRUE) 
{ 
    global $nested; 

    if ($beginning) 
    { 
     if ($standalone) header("content-type:text/xml;charset=utf-8"); 
     $output .= '<'.'?'.'xml version="1.0" encoding="UTF-8"'.'?'.'>' . PHP_EOL; 
     $output .= '<' . $name . '>' . PHP_EOL; 
     $nested = 0; 
    } 

    // This is required because XML standards do not allow a tag to start with a number or symbol, you can change this value to whatever you like: 
    $ArrayNumberPrefix = 'ARRAY_NUMBER_'; 

    foreach ($array as $root=>$child) 
    { 
     if (is_array($child)) 
     { 
      $output .= str_repeat(" ", (2 * $nested)) . ' <' . (is_string($root) ? $root : $ArrayNumberPrefix . $root) . '>' . PHP_EOL; 
      $nested++; 
      $output .= array2xml($child,NULL,NULL,FALSE); 
      $nested--; 
      $output .= str_repeat(" ", (2 * $nested)) . ' </' . (is_string($root) ? $root : $ArrayNumberPrefix . $root) . '>' . PHP_EOL; 
     } 
     else 
     { 
      $output .= str_repeat(" ", (2 * $nested)) . ' <' . (is_string($root) ? $root : $ArrayNumberPrefix . $root) . '><![CDATA[' . $child . ']]></' . (is_string($root) ? $root : $ArrayNumberPrefix . $root) . '>' . PHP_EOL; 
     } 
    } 

    if ($beginning) 
     $output .= '</' . $name . '>'; 

    return $output; 
} 

//connect to database and select database (edit yourself) 
mysql_connect("localhost", "username", "password"); 
mysql_select_db("databasename"); 

//Get all posts whose status us published. 
$result = mysql_query("SELECT * FROM wp_posts WHERE post_status = 'publish'"); 
while($row = mysql_fetch_assoc($result)) 
    $posts[] = $row; 

//convert to array and print it on screen: 
echo "<pre>"; 
echo htmlentities(array2xml($posts, 'posts', false)); 
echo "</pre>"; 
?> 
1

在你的WordPress安裝,看看wp-admin/export.php線28-48(在3.0設置)。 這是生成管理中可下載的XML文件的代碼。你也許可以在你自己的代碼中使用它(不幸的是,它沒有組織成一個函數,所以你必須做一些複製粘貼)。

此外,您可以自動下載http://yourblog/wp-admin/export.php?download,因爲此URI始終會重定向到新的XML導出。不過,你必須處理輸入你的憑證。