我继承了一个PHP和Wordpress项目, 其中的术语(分类法=’
类别’
)用于记录系统中的每个数据点。条款表中有30, 000多行。是的, 我知道-这是一个疯狂的决定, 但我没有做到。我只是坚持下去。
我有一个特定的脚本, 试图对几百个帖子进行修复。该修复程序要求我使用wp_create_category和wp_set_post_categories。我的问题是速度。似乎每个对wp_create_category的调用都会更新某种缓存, 或者从头开始重新加载/重写术语中的所有内容。我无法解释为什么每次通话都需要20到30秒才能完成。
除了使用术语存储系统中的每个数据点的明显错误之外, ..我在做这些慢速操作时还做错了什么?
在运行数百个wp_create_category和wp_set_post_categories之前, 是否有办法”
禁用”
某些东西, 这些东西会使我的生活减少等待的烦恼?
#1我不是WP专家, 我的强项是更多数据库。也就是说, 这看起来像是数据库(或与数据库的交互)问题。
【WordPress(wp_create_category可能需要20秒才能完成)】我的猜测是, 直接查看数据库是基于WP的, 并且可以更有效地导入类别, 可以为你提供更好的服务。将类别插入到以”
创建类别”
开始的链中, 然后移动到插入类别, 最后似乎插入了一个术语。 (请注意三个单独的链接, 以及源代码)WordPress Codex有一个数据库图, 该数据库图显示了帖子的一系列卫星表格中的”
术语”
。
因此, 如果你直接插入一个术语并找到你想要模仿的结构/数据信息(我建议在wp_termmeta和wp_term_taxonomy中重新创建或链接到适当的信息), 那么你将得到一个指数级更快的处理。
另一个选择是正确编写代码, 开始运行, 然后晚上回家。这实际上可能更简单。
#2wp_create_category在执行插入操作之前检查该术语是否存在。因此, 就你而言, 如果你有3万行的数据, 并且索引不正确, 则会对性能产生一些影响。你可以优化数据库并为其重新编制索引, 然后再次测试是否仍然无效, 并且确定要插入唯一的类别, 然后尝试调用wp_insert_category(array(‘
cat_name’
=>
$ cat_name, ‘
category_parent’
=>
$ parent ));
推荐阅读
- WordPress-为什么在我的自定义帖子类型中会忽略短代码()
- WordPress的WP_Query仅搜索标题
- WordPress wp_insert_post在移动设备上多次触发
- WordPress网站显示不正确
- WordPress警告支持
- WordPress在Sage模板中使用图像
- WordPress(URL到home.php的所有帖子)
- WordPress注销子主题中的父主题侧边栏不起作用
- wordpress 27个社交媒体无需共享插件即可共享图标。