自定义分类不正确地计算修订吗?

时间:2010-10-21 作者:jeffbyrnes

(Moderator\'s note: 最初的标题是“我的自定义分类法计数不正确;它正在计数修订版”)

以前有人碰到过这个吗?我添加了两个自定义分类法count 的列wp_term_taxonomy 表设置不正确。除了发布的帖子外,它似乎还在统计修订。

我已经在WordPress的核心进行了探索,但这是一个巨大的野兽,老实说,我几乎不知道从哪里开始寻找count 为了那张桌子。

2 个回复
SO网友:MikeSchinkel

你好@berkleebassist:

如果没有管理员访问你的网站和数据库,很难验证你的问题,但我可以给你一些可能有用的指导。

中有两个功能/wp-includes/taxonomy.php 更新分类法术语计数:wp_update_term_count_now()_update_post_term_count(). 它们分别位于(WordPress v3.0.1)第2454行和第2049行。他们都称之为动作钩\'edited_term_taxonomy\' 就在他们更新计数之后。两个函数都发送相同的两个参数a$term 和a$taxonomy 因此,您可以将其视为程序的一个挂钩。

这是一个函数的shell,您可以将其复制到主题的functions.php 文件要更新计数,只需添加SQL即可更新计数,更新方式如下:

add_action(\'edited_term_taxonomy\',\'yoursite_edited_term_taxonomy\',10,2);
function yoursite_edited_term_taxonomy($term,$taxonomy) {
  global $wpdb;
  $sql = "...set this to UPDATE taxonomy term count how you want...";
  $wpdb->query($sql);
}
如果您需要有关编写SQL命令的更具体指导,请告诉我。

还有,这里有一张trac票证,上面讨论了类似的内容;这可能与:

SO网友:jeffbyrnes

好的,我们已经完成了一个SQL查询,但有一个新的难题:我有两个分类法,现在正试图找出如何使用每个分类法的正确查询来运行此函数。以下是我的每个问题:

UPDATE wp_cln_term_taxonomy tt1
SET count =
(SELECT count(p.ID) FROM  wp_cln_term_relationships tr
LEFT JOIN wp_cln_posts p
   ON (p.ID = tr.object_id AND p.post_type = \'examples\' AND p.post_status = \'publish\')
WHERE tr.term_taxonomy_id = tt1.term_taxonomy_id)
WHERE tt1.taxonomy = \'example-cats\'
第二个:

UPDATE wp_cln_term_taxonomy tt1
SET count =
(SELECT count(p.ID) FROM  wp_cln_term_relationships tr
LEFT JOIN wp_cln_posts p
   ON (p.ID = tr.object_id AND p.post_type = \'ideas\' AND p.post_status = \'publish\')
WHERE tr.term_taxonomy_id = tt1.term_taxonomy_id)
WHERE tt1.taxonomy = \'idea-cats\'
这些都设置了正确的post计数,但我是否可以始终同时运行这两个查询?或者有没有一种方法可以只启动其中一个,以减轻MySQL的负载?

结束