首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress类别php查询内存不足?

Wordpress类别php查询内存不足?
EN

Stack Overflow用户
提问于 2011-05-19 02:26:16
回答 5查看 2.9K关注 0票数 4

我有一个wordpress页面,上面有我最近一次旅行的地图。

http://www.marksmayo.com/south-american-journey/

如果我写一个基本的php查询函数来列出‘南美2010’类别中的所有帖子,它对4-5篇帖子很好,但当我将帖子添加到类别中时,它开始用这个查询耗尽内存(在页面上给出错误),现在就是不加载地图下面的任何东西。

相同的代码是on:

http://www.marksmayo.com/northern-europe-and-asia-mission/

目前正在工作,但随着我添加更多的帖子,这可能也会停止。

代码是:

代码语言:javascript
复制
<?php

// The Query
query_posts( array ( 'category_name' => 'south america 2010', 'posts_per_page' => -1 ) );
// The Loop
while ( have_posts() ) : the_post();
    echo '<li><a href=';
        the_permalink();
        echo'>';
    the_title();

    echo '</a></li>';
endwhile;

// Reset Query
wp_reset_query();

?>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-22 01:14:41

两件事:使用更简单的查询和提高WP的内存分配。

尝试这个查询,它会自动重置,并且可以在页面(执行php时)或页面模板中使用任意次数。将类别和showpost的名称更改为数字,或-1以显示全部。

代码语言:javascript
复制
<?php $my_query = new WP_Query('category_name=mycategory&showposts=10'); ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">

<?php the_title(); ?></a>

<?php endwhile; ?>

在wp-config.php中提升wp的内存分配,使其接近顶部:

代码语言:javascript
复制
define('WP_MEMORY_LIMIT', '64M');

并检查您帐户中的php.ini文件,看看php内存是否设置为非常低的限制。你在Bluehost上,所以如果你没有php.ini文件,你可以在Cpanel的php配置中添加一个php.ini,然后在你的根账户中编辑它。

Bluehost将允许php使用这么多的RAM,但要知道Bluehost有时会限制您的帐户CPU;检查Cpanel的CPU使用率和节流量。

票数 6
EN

Stack Overflow用户

发布于 2011-05-22 00:35:40

我将使用类别ID而不是类别段塞,因此您的查询将变为:

代码语言:javascript
复制
query_posts( array ( 'cat' => 4, 'posts_per_page' => -1 ) );

(我假设整数搜索会更快,密集度更低。)(显然将4替换为您的类别ID)。

您还可以删除对'the_title()‘的调用,并将其替换为$post->post_title,因为您已经调用了the_post(),尽管老实说,我不能100%确定这是否会产生影响。

另外,如果你在共享主机上,你可以考虑一个缓存插件。我推荐W3 Total Cache,它只会在内容实际更新时运行这个查询来构建平面文件。

最后,在你的代码片段之前是什么,你还没有把它放在一个循环中,所以它循环了其他的东西,并且每次都运行它,是吗?

票数 2
EN

Stack Overflow用户

发布于 2011-05-26 20:59:00

即使您达到了另一个答案中建议的wp-config.php文件中的内存限制,您也无法逃脱内存不足的问题,因为$wpdb管理内存的方式非常浪费。(在WP3.0中,它为检索到的每一行创建并存储两个副本,即便如此,与早期版本相比,这也是一个巨大的改进。)

我建议将每页的帖子数量限制在更合理的范围内,例如50个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6049318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档