超过20.000分类法类别问题 - wordpress

时间:2017-03-24 15:15:32

标签: php wordpress custom-taxonomy taxonomy-terms

我正在使用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

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

2 个答案:

答案 0 :(得分:1)

魔兽。好多啊!在wordpress方面,你慢慢杀死你的服务器。 我会建议一些事情。

  1. 立即转向独立服务器(linode / digital ocean),为合理数量的金钱提供良好的解决方案。

  2. 关于实现缓存的方法,我也建议使用内存缓存,如memcached或redis,两者的实现都存在于wordpress.org/plugins目录中。

  3. wordpress域中的内存limin上升是以下一种方式完成的。您需要在wp-config.php中定义要使用的内存量。 e.g。

    define('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方式实现它有点难度)

答案 1 :(得分:0)

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