我正在使用此功能在帖子类型上创建关系:

private function setObjectTerms($last_insert_id){

      //INSERT course_type/RELATIONSHIP
      wp_set_object_terms($last_insert_id,$this->course_type,'course-type');

  }


在上面,课程类型可以是“免费”或“付费”,而$ last_insert_id只是一个数字。

无论如何,我一直收到此错误,也不知道为什么:


  WordPress数据库错误:[您的SQL语法有误;校验
  与您的MySQL服务器版本相对应的手册
  在'AS tr INNER JOIN AS tt ON tr.term_taxonomy_id =附近使用的语法
  tt.term_taxonomy_id WHERE tr.ob'在第1行]
  
  选择tr.term_taxonomy_id
  从AS TR内连接到TR上tr.term_taxonomy_id =
  tt.term_taxonomy_id WHERE tr.object_id IN(15534)和tt.taxonomy IN
  (“课程类型”)


奇怪的是,我一直在使用相同的功能,并且已经起作用。我只是不明白为什么生成的SQL不正确。谁能指出我正确的方向?

最佳答案

该失败的查询中缺少wp_term_taxonomywp_term_relationships表名,因此,毫不奇怪,MySQL会对此感到困惑。

在WordPress内部,global $wpdb对象将这些表名提供给构建查询的函数。如果表名称的字符串为空,则尚未初始化。

在调用此函数之前,您可能未正确设置WordPress。

看到此:How can I initialize wpdb class in a php file?

关于mysql - Wordpress wp_set_object_terms SQL错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21716073/

10-16 07:28