如何将帖子从一个类别移动到另一个类别

时间:2020-07-21 作者:sajeergraphix

我是PHP新手。请帮助我实现以下场景。在过去的三天里,我一直在努力做到这一点。

我的WordPress仪表板中有两个类别,分别是;可用(id:3)“”;和;已预订(id:4)”;。在“中”;“可用”;类别有几个职位。

当我提交一份;联系方式7“;成功的话,我想把这个帖子转到;“已预订”;类别

我在我的函数中尝试了如下内容。php

add_action(\'wpcf7_mail_sent\', function ($cf7) {
    function wp_set_post_categories( $post_ID = 0, $post_categories = array(), $append = true ) {
    $post_ID     = (int) $post_ID;
    $post_type   = get_post_type( $post_ID );
    $post_status = get_post_status( $post_ID );
    // If $post_categories isn\'t already an array, make it one:
    $post_categories = (array) $post_categories;
    if ( empty( $post_categories ) ) {
        if ( \'post\' == $post_type && \'auto-draft\' != $post_status ) {
            $post_categories = array( get_option( \'default_category\' ) );
            $append          = false;
        } else {
            $post_categories = array(4);
        }
    } elseif ( 1 == count( $post_categories ) && \'\' == reset( $post_categories ) ) {
        return true;
    }
 
    return wp_set_post_terms( $post_ID, $post_categories, \'category\', $append );
}
});
无论我在动作中写什么,它甚至都不会执行

add_action(\'wpcf7_mail_sent\', function ($cf7) {
    // not working anything, only print_r command working
});
我们将不胜感激。非常感谢。

1 个回复
SO网友:Az Rieil
add_action(\'wpcf7_mail_sent\', function ($cf7) {
    $submission = WPCF7_Submission::get_instance();
    $data = $submission->get_posted_data();

    if( empty($data[\'_wpcf7_container_post\']) )
        return;

    $post_id = (int) $data[\'_wpcf7_container_post\'];

    wp_remove_object_terms( $post_id, \'available\', \'category\');
    wp_set_object_terms( $post_id, \'booked\', \'category\');
});

相关推荐

主题中的unctions.php是否适用于所有模板?

我已经读了一段时间主题开发人员手册,也许最后我遇到了太多关于wordpress主题开发的问题。我已经很长时间没有在C#/Java背景下进行任何主题/php开发了。我想我只是想在开始使用wordpress之前有一个清晰的认识,这就是我想做的:为主站点创建一个页面,并将其设置为main,只查询一个类别。我想一个主题的功能就像前/后过滤器/挂钩的控制器创建另一个页面,但只允许某些自定义帖子类型,这一切都会通过函数完成。主题的php</如果这不是我想更好地了解的地方,我很抱歉。如果您需要在评论中进一步澄清,