Php 如何导出WordPress帖子?
如何将WordPress帖子导出为XML或CSV?我正在寻找一种简洁的方法,借助Php 如何导出WordPress帖子?,php,xml,wordpress,export,Php,Xml,Wordpress,Export,如何将WordPress帖子导出为XML或CSV?我正在寻找一种简洁的方法,借助PHP 注意:我不想通过“管理”面板进行操作,因为我想将其自动化。根据 您将找到导出和导入 选项现在位于您的“管理”下 博客管理区。XML格式是一种 RSS 2.0的扩展版本,以及 将被构建到下一个 WordPress的可下载版本 (2.1) 那么根据 您将找到导出和导入 选项现在位于您的“管理”下 博客管理区。XML格式是一种 RSS 2.0的扩展版本,以及 将被构建到下一个 WordPress的可下载版本 (2.
PHP
注意:我不想通过“管理”面板进行操作,因为我想将其自动化。根据
您将找到导出和导入
选项现在位于您的“管理”下
博客管理区。XML格式是一种
RSS 2.0的扩展版本,以及
将被构建到下一个
WordPress的可下载版本
(2.1)
那么根据
您将找到导出和导入
选项现在位于您的“管理”下
博客管理区。XML格式是一种
RSS 2.0的扩展版本,以及
将被构建到下一个
WordPress的可下载版本
(2.1)
要从PHP执行此操作,请执行以下操作:
publish
的帖子$child)
{
if(is_数组($child))
{
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
$nested++;
$output.=array2xml($child,NULL,NULL,FALSE);
$嵌套--;
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
}
其他的
{
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
}
}
如果($开始)
$output.='';
返回$output;
}
//连接到数据库并选择数据库(自己编辑)
mysql_connect(“本地主机”、“用户名”、“密码”);
mysql_select_db(“数据库名”);
//获取所有状态为“已发布”的帖子。
$result=mysql_query(“从wp_posts中选择*,其中post_status='publish'”);
while($row=mysql\u fetch\u assoc($result))
$posts[]=$row;
//转换为数组并在屏幕上打印:
回声“;
echo htmlentities(array2xml($posts,'posts',false));
回声“;
?>
要从PHP执行此操作,请执行以下操作:
publish
的帖子$child)
{
if(is_数组($child))
{
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
$nested++;
$output.=array2xml($child,NULL,NULL,FALSE);
$嵌套--;
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
}
其他的
{
$output.=str_repeat(“,(2*$nested)).”。PHP_EOL;
}
}
如果($开始)
$output.='';
返回$output;
}
//连接到数据库并选择数据库(自己编辑)
mysql_connect(“本地主机”、“用户名”、“密码”);
mysql_select_db(“数据库名”);
//获取所有状态为“已发布”的帖子。
$result=mysql_query(“从wp_posts中选择*,其中post_status='publish'”);
while($row=mysql\u fetch\u assoc($result))
$posts[]=$row;
//转换为数组并在屏幕上打印:
回声“;
echo htmlentities(array2xml($posts,'posts',false));
回声“;
?>
在Wordpress设置中,查看wp admin/export.php
第28-48行(在3.0设置中)。
这是生成可在admin中下载的XML文件的代码。您可以在自己的代码中使用它(不幸的是,它没有组织成函数,所以您必须进行一些复制粘贴)
此外,您还可以自动下载,因为此URI总是重定向到新的XML导出。不过,您必须输入您的凭证。在Wordpress设置中,请查看
wp admin/export.php
第28-48行(在3.0设置中)。
这是生成可在admin中下载的XML文件的代码。您可以在自己的代码中使用它(不幸的是,它没有组织成函数,所以您必须进行一些复制粘贴)
此外,您还可以自动下载,因为此URI总是重定向到新的XML导出。不过,你必须输入你的凭证
<?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>";
?>