我有一个自定义帖子类型,其中包含超过100k的帖子。当我尝试在管理面板中转到帖子类型的主页面时,我收到错误:
致命错误:第506行/home/spottercharts/spottercharts.com/wp-includes/cache.php中允许的内存大小为94371840字节(尝试分配84个字节)
主页面通常会列出该类型的所有帖子。由于有这么多,它占用了所有的PHP内存。
如果现在增加php.ini中的PHP内存不是一个选项,还有另一种方法让Wordpress不查询该类型的所有帖子吗?我只需要能够搜索帖子,而不是全部列出。如果没有,有没有办法优化这个帖子类型,所以它不会消耗这么多的内存?
答案 0 :(得分:2)
我要问的第一件事是你如何获得超过10万的帖子?这在你的数据库中作为个人帖子有很多,我怀疑它们不是所有的实际帖子,而是用于其他目的?
你有几个选择:
短期 - 内存限制
可以通过多种方式在服务器上修改内存限制,具体取决于您的服务器配置或主机允许的内容。如果您没有root访问权限,则可以将php.ini
文件放入网站的主目录中。
或者,通过添加以下内容修改您的.htaccess
文件:
php_value memory_limit 256M
当您使用Wordpress时,您还可以将以下行添加到wp-config.php
文件中:
define('WP_MEMORY_LIMIT', '256M');
更好的方法
显然,以上是至少让网站快速运行的好方法,但实际上这是非常高的使用率。
关于如何提高内存使用率的一些建议:
query_posts
时请求您要返回的特定号码。这将确保它停止从数据库中拉出太多,从而使服务器处理的次数减少。您还可以执行许多其他操作,但实际上您需要考虑为什么数据库中包含如此多的数据,以及如何最大限度地减少Wordpress在返回数据时需要执行的查询和工作量。< / p>