自定义贴子类型:“TRANSITION_POST_STATUS”动作获取标题等字段

时间:2017-07-21 作者:Bram Huisman

我将重力表单与名为“cursussen”的自定义帖子类型结合使用。我制作了一个模板表单,当创建新的自定义帖子时,我会复制并更新它。我想根据从后端创建自定义帖子时输入的输入更新一些表单字段。

“一切”都正常。。但我唯一不能做的就是在表单中更新正确的值。下面您可以看到我的代码示例

// Listen for publishing of a new cursus post
function create_new_form($new_status, $old_status, $post) {
    $post_title = $post->title;
    //Check if post is published
  if(\'publish\' === $new_status && \'publish\' !== $old_status && $post->post_type === \'cursussen\') {

        //Create form
        function vhh_add_form($form) {
            $form_id = 2; //Standard form
            $form = GFAPI::get_form($form_id);
            $form[\'title\'] = $post_title;
            $result = GFAPI::add_form( $form );
            return $result;
        }
        vhh_add_form();
  }
}
我使用此操作

add_action( \'transition_post_status\', \'create_new_form\', 10, 3);
我认为问题在于$post对象。。这是因为该操作是在保存所有post数据之前触发的吗?

非常感谢!

1 个回复
SO网友:Bram Huisman

我想出了自己的解决办法。我使用了publish\\u post操作,而不是transition\\u post\\u status操作。

$this->loader->add_action( \'publish_cursussen\', $plugin_admin, \'save_cursus_meta\', 10, 2);
以前的问题是尚未保存数据。。使用这个新函数,我可以获得ID和标题

public function add_new_form( $cursus_title ){
        $form_id = 2; //Standard form
        $form = GFAPI::get_form($form_id);
        $form[\'title\'] = $cursus_title;
        $form[\'limitEntriesCount\'] = 100;
        $result = GFAPI::add_form( $form );
        return $result;
    }

    public function save_cursus_meta( $ID, $post ){
        $post_type = get_post_type($ID);
        $cursus_title = get_the_title($ID);
        // If this isn\'t a \'book\' post, don\'t update it.
        if ( "cursussen" != $post_type) return;

        $myPost = get_post($ID);
        if( $myPost->post_modified_gmt == $myPost->post_date_gmt ){
            $this->add_new_form($cursus_title);
        }else{
            return;
        }
    }
希望这能对将来的人有所帮助!

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在