2012-10-21 69 views
1

我有一个自定义帖子类型,现在有超过10万帖子。当我尝试在管理面板中转到帖子类型的主页时,出现错误:如何有一个自定义帖子类型不查询所有帖子

致命错误:94371840字节允许的内存大小(尝试分配84个字节)位于/ home /在线506上的spottercharts/spottercharts.com/wp-includes/cache.php

主页面通常会列出所有属于该类型的帖子。由于有这么多,它正在吃掉所有的PHP内存。

如果增加php.ini中的PHP内存不是一个选项,是否有另一种方法让Wordpress不查询该类型的所有帖子?我只需要搜索帖子的能力,而不是全部列出。如果不是,有没有办法优化这个帖子类型,所以它不会消​​耗太多的内存?

回答

2

我不得不问的第一件事是,你是如何获得超过10万的职位?在你的数据库中,作为单独的帖子,这确实是一件非常糟糕的事情,我怀疑它们不是全部实际的帖子,而是被用于其他目的?

你这里有几个选项:

短期 - 内存限制

内存的限制可以在服务器上以多种方式进行修改,这取决于您的服务器配置或你的主机允许。如果您没有root权限,则可以将php.ini文件放入您网站的主目录中。

另外,通过添加修改.htaccess文件如下:

php_value memory_limit 256M 

当你使用Wordpress,您还可以添加以下行到您的wp-config.php文件:

define('WP_MEMORY_LIMIT', '256M'); 

更好方法

显然上面是一个很好的方法,至少得到网站运行速度很快,但实际上这是非常高的使用率。

一些建议,你如何能提高你的内存使用情况:

  1. 减少数据库的大小。有没有其他方法可以用来减少你有多少个帖子?
  2. 请确保您要求使用query_posts时要返回的特定号码。这将确保它停止从数据库拉太多,因此离开服务器更少处理。

还有许多其他的事情可以做,但实际上你需要考虑你为什么在数据库中如此多的数据,以及如何最大限度地减少WordPress是需要承担返回的查询和工作量您数据。

+0

所有非常有帮助。我可能会错过有关帖子的数量。帖子大约是8,000,而postmeta是100k +。我尝试了几乎所有改变内存限制的方法,但都无济于事。我猜测主持人需要增加,他们需要一段时间才能回到我身边。 – dremme

+0

我建议与他们联系并询问他们是否允许您修改它。当我在共享主机上时,他们通常很乐意提供帮助。 – Ollie

相关问题