2

我正在使用wordpress。并已插入超过 20.000 个产品类别,但现在我显示所有类别的页面已关闭且不可用。

即使在后端 - 经过一些类别后,我也看不到休息。我看到以下错误:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 
bytes) in /wp-admin/includes/class-wp-terms-list-table.php on line 273

Maximum execution time of 30 seconds exceeded in class-wp-terms-list-table.php on line 273

PHP Fatal error:  Maximum execution time of 30 seconds exceeded in
/wp-includes/taxonomy.php on line 0

我试图将 php.ini 设置增加到这些:

memory_limit = 1024M
max_execution_time = 3000

但没有运气。可能是什么问题?我错过了什么吗?

4

2 回答 2

1

哇。好多啊!就 wordpress 而言,您会慢慢杀死您的服务器。我会建议几件事。

  1. 立即迁移到独立服务器(linode/数字海洋)以合理的金额提供良好的解决方案。

  2. 关于实现缓存,我也建议像 memcached 或 redis 这样的内存缓存,两者的实现都存在于 wordpress.org/plugins 目录中。

  3. wordpress 领域中上升的内存限制是通过下一种方式完成的。您需要在 wp-config.php 中定义要使用的内存量。例如

    定义(“WP_MEMORY_LIMIT”,“512M”);

  4. 时间限制可以通过下一种方式完成(也在 wp-config 中),但我建议以其他方式修复 issu(实现缓存)

    @ini_set('max_execution_time', 0); @set_time_limit(0);

  5. 还请考虑将您的分类法更改为标签的方式(如果它不需要层次结构),并使用正常方式查看您的类别。例如,在 WordPress 中获取类别列表,它会触发 3 个表(连接等)。

  6. 解决问题的另一种方法是通过 wordpress 过滤器更改 SQL(但在 get_terms 的情况下,以纯 WordPress 方式实现有点困难)

于 2017-03-24T17:20:42.570 回答
0

尝试通过纯 SQL 查询获取类别(而不是像 get_terms 这样的 wordpress 函数)。

于 2017-03-24T15:25:42.643 回答