如何在循环中添加标签发布?

时间:2021-11-05 作者:shelbypereira

下面是我的代码,它循环遍历图书数据库中的所有帖子。我想标记没有标记$tag=”的图书条目;book\\uquot$booknum"E_"E$查普纳姆;

我在调试中的输出显示,查询正确地标识了我想要的内容。

但行:$result=wp\\u add\\u post\\u tags((int)$id,$tag);似乎没有将标记添加到具有$id的帖子中。我尝试添加//wp\\u update\\u post($post);//wp\\u reset\\u postdata();但两者都失败了。

while ($q->have_posts()) {
            $post= $q->the_post();
             $link = get_permalink();
             $title=get_the_title();
             $id=get_the_ID();
             $content=get_the_content();
             $booknum=$this->GetKeyValFromText($content, "book_num");
             $chapnum=$this->GetKeyValFromText($content, "chap_num");
             $tag="book_".$booknum."_".$chapnum;
             $hasTag=has_tag($tag);
             $ln=$this->MakeLink($title, $link);
             if (!$hasTag) {
                 $this->debug("adding  post tag to $ln ;    $tag   hasTAG=$hasTag , id=$id");
                // wp_insert_term( \'post_tag\', $tag );
                $result= wp_add_post_tags((int) $id, $tag );
                var_dump($result);
                 //wp_update_post( $post );
                // wp_reset_postdata();
                 return;
             }
         }

1 个回复
SO网友:shelbypereira

我发现问题出在polylang插件上。为了使以上内容起作用,我需要添加语言信息,尤其是将标签与帖子的语言相关联。

$result=wp\\u insert\\u term($tag,“post\\u tag”);pll\\U set\\U term\\U语言($结果[“term\\U id”],\'fr’);

pll\\u set\\u term\\u language是polylang插件提供的函数,用于将新添加的标记与语言相关联(在上例中,fr=法语)。