Wordpress 3.5.1的debug流水账

一个合作网站是基于Wordpress做的, 不能正常使用FeedWordPress这个插件, 对方没有开发者, 只有一个类似于美工和编辑的人, 因为我在本地使用同样的版本(Wordpress 3.5.1, FeedWordPress 2013.0504)运行正常, 所以决定帮他们看看. 花了老大劲把源码和数据库弄到了本地, 今天一整天基本上都在debug了. 最终发现的问题是, FeedWordPress 里面有一个选项Optimize IN clauses, 这个开启后, 会在底层的query上增加一个filter, 就是这个filter导致的问题. 这个query,

SELECT tr.term_taxonomy_id FROM wp_term_relationships AS tr 
INNER JOIN wp_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id 
WHERE tr.object_id IN (13319) AND tt.taxonomy IN ('post_tag')

在经过filter后, 最后的taxonomy 条件不见了, 导致每一次在执行至wp_set_post_tags()时, 将wp_set_post_categories()里面设好的category关联全删了. 相关收获: * 在wordpress中, 可以通过一个global的 $wp_filter 查看某个filter上关联了哪些函数 * 使用php扩展xdebug, 查看php代码被哪个方法和文件调用. 显示语句为

	echo "Called @ ". xdebug_call_file().":". xdebug_call_line(). " from ". xdebug_call_function();

posted on 2013-06-21 18:55  Milton  阅读(180)  评论(0编辑  收藏  举报

导航