在发布之前将标签添加到“待定”帖子中

时间:2017-03-06 作者:Iurie

我使用第三方插件,分两步从前端创建自定义帖子(广告):1) 添加内容后,作者必须按下“预览”按钮2) 只有在那之后,他/她才能保住职位。第一步后,帖子以挂起状态保存,第二步后,帖子变成“发布”。

This is what I want: 在这两个步骤之间转换/保存meta_key 值作为post标记。经过一些研究,我来到了下一个部分工作的功能:

add_action(\'save_post\', \'set_advert_tags\');
function set_advert_tags( $post_id ) {
   if ( \'advert\' == get_post_type() ) {
      $tags = get_post_meta( $post_id, \'advert_tags_field\', true );
      $tags = explode( \',\', $tags );
      if(!empty( $tags ))
         wp_set_object_terms( $post_id, $tags, \'advert_tag\' );
   }
}
What is wrong: 该函数既不会在第一步之后创建标签,也不会在第二步之后创建标签,但当我从后端更新帖子时,它会起作用。这里我还有另一个问题:我无法从后端向帖子添加或分配新标签,因为我的函数以某种方式干扰了这个操作,只有meta_key 值被指定为post标记。

1 个回复
SO网友:Iurie

彼得·古森的answer 救了我的命:

add_action( \'transition_post_status\', function ( $new_status, $old_status, $post ) {
   if( \'publish\' == $new_status && \'advert_tmp\' == $old_status && $post->post_type == \'advert\' ) {
      $tags = get_post_meta( $post->ID, \'advert_tags_field\', true );
      $tags = explode( \',\', $tags );
      if( !empty( $tags ) ) {
         wp_set_object_terms( $post->ID, $tags, \'advert_tag\' );
         delete_post_meta( $post->ID, \'advert_tags_field\' );
      }
    }
}, 10, 3 );

相关推荐

Use Tags to initiate Search

首先,我是Wordpress和PHP的新手,如果这是一个基本问题,我深表歉意。我安装了Wordpress,每篇文章都用标签标记,这些标签包含以下链接:href=domain.com/index.php/tag/TAGNAME 但我希望链接是:href=domain.com/index.php/search/TAGNAME 据我所知,我需要改变get_tag_link() 但所做的就是使用get_term_link() 然后我完全迷路了。是否有一个函数If(tag){ return \"