Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何导出WordPress帖子?_Php_Xml_Wordpress_Export - Fatal编程技术网

Php 如何导出WordPress帖子?

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.

如何将WordPress帖子导出为XML或CSV?我正在寻找一种简洁的方法,借助
PHP

注意:我不想通过“管理”面板进行操作,因为我想将其自动化。

根据

您将找到导出和导入 选项现在位于您的“管理”下 博客管理区。XML格式是一种 RSS 2.0的扩展版本,以及 将被构建到下一个 WordPress的可下载版本 (2.1)

那么根据

您将找到导出和导入 选项现在位于您的“管理”下 博客管理区。XML格式是一种 RSS 2.0的扩展版本,以及 将被构建到下一个 WordPress的可下载版本 (2.1)


要从PHP执行此操作,请执行以下操作:

  • 从数据库中获取所有标记为
    publish
    的帖子
  • 使用以下array2xml函数将它们导出到数组:
  • $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
    的帖子
  • 使用以下array2xml函数将它们导出到数组:
  • $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>";
    ?>