WordPress在列表视图中检索所有自定义帖子类型的元数据


9

我在WordPress即将死去的WordPress中遇到问题。我增加了内存,但是PHP进程跳到100%的CPU使用率,然后死了,Apache抛出500错误。

我试图让Apache记录某些内容,或者使PHP / MySQL记录错误,但是除了一般的500错误以外,什么都没有记录。

500问题在列表页面上,例如:

/wp-admin/edit.php?post_type=artist

当前,如果我添加类似以下的日期排序,则WordPress中有超过1200个艺术家条目:

/wp-admin/edit.php?post_type=artist&orderby=date

然后,列表加载良好,速度更快!我已经坐下来观看MySQL查询日志,看来WordPress正在为每个帖子(共1200个)加载元数据,以便生成10个左右的列表。对于其中一个查询,将返回92000行。我使用的是“高级自定义字段”和带有其自己框架的模板,因此每个帖子都附加了相当数量的元数据。我认为这是PHP无法处理的太多数据,在这里达到了顶峰。明年,这1200个职位很容易翻倍。

如何强制初始页面加载以附加日期排序或解决所有加载的元数据问题?


您是否尝试过禁用ACF和其他任何插件?我想我曾经有过类似的问题,我认为罪魁祸首不是WP本身,而是ACF。例如,ACF将元数据添加到修订中,然后再加载所有这些。请确保此问题的根源是什么,因为它将帮助其他人帮助您。
kraftner 2016年

嘿,@ kraftner ive禁用了ACF,它没有任何区别。
Paul Cullen

您在wp-config(WP_MAX_MEMORY_LIMIT)上使用多少内存?您的memory_limit的PHP.INI值是多少?尝试将它们提高到最大。另外,我来看看您的mysql配置文件。
伊曼纽尔·罗查·哥斯达黎加

Ive暂时将PHP和WP_MAX_MEMORY_LIMIT都提高到512,没有任何效果。我的mysql配置文件是:default-storage-engine=MyISAM innodb_file_per_table=1 max_allowed_packet=268435456 open_files_limit=10000 query_cache_size=64M log_slow_queries = 1 log-slow-queries=/var/log/mysql.slow.log log-error=/var/log/mysqld.log general_log_file = /var/log/mysql_general.log
Paul Cullen

1
定制帖子类型的“艺术家”是分层的(例如页面)吗?..如果是这样,可能是罪魁祸首,因为所有帖子都将在管理控制台中查询。如果您的应用程序允许,您可以尝试将“ artist” CPT的层次结构更改为false,看看是否可以缓解内存问题
locomo

Answers:


1

尝试更改层次结构:在CPT定义中为false(如果您的应用程序允许)。

当CPT设置为“分层”:true时,将在管理仪表板中查询所有帖子,这可能会导致内存问题。


0

问题是CPT设置为分层,将其切换为分层:functions.php中的false解决了该问题。


1
请接受您自己的答案,以便可以关闭此问题。
cjbj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.