查询一个庞大的WordPress数据库

时间:2014-02-07 17:44:21

标签: php mysql wordpress sitemap

我正在生成一个站点地图xml,我在25mil帖子上使用query_posts()。

我的查询超过了我的400万内存限制大约10k帖子。有没有一种技术可以解决这个问题?

我只是尝试做递归但是也没有用(我只是意识到php文件在每次递归时都会运行哈哈)但是这里是我的代码:

ini_set('display_errors', 'On');
require('../../wp/wp-blog-header.php');
include 'src/SitemapPHP/Sitemap.php';
use SitemapPHP\Sitemap;
$sitemap = new Sitemap('http://www.example.com');
$sitemap->setPath('../xmls/');

$offset = 0;

function parsePosts($offset, $sitemap, $posts = null)
{
    if($posts == null){
        $posts = query_posts('post_type=services&posts_per_page=10000&offset='.$offset);
    }

    $count = 0;

    foreach ($posts as $post) : start_wp();
        $count++;
        $sitemap->addItem('/services-view/' . $post->post_name);
    endforeach;

    $offset += $count;
    echo $offset;

    if($count == 10000) {
        parsePosts($offset, $sitemap);
    }
}

parsePosts($offset, $sitemap);

$sitemap->createSitemapIndex('http://www.example.com/', 'Today');

编辑,我在查询失败时也收到此错误:处理此指令时出错

0 个答案:

没有答案