update_post_meta

时间:2022-02-28 作者:Ahmed Zidan

我正在尝试使用此函数php更新自定义帖子类型的自定义字段

add_action(\'wp_ajax_updatemeta\', \'toggle_task_status\');
add_action(\'wp_ajax_nopriv_updatemeta\', \'toggle_task_status\');
function toggle_task_status () {
    $post_id = $data[\'post_id\'];
    return update_post_meta($post_id , \'task_status\', \'open\');
}
javascript


jQuery("form").on("submit", function () {
    console.log("hello");
    var post_id = jQuery("#post_id").val();
    console.log(post_id);
    var post_data = {
                    action: "updatemeta",
                    data: {
                        post_id: post_id,
                    }
                };
    jQuery.ajax({
        type: "POST",
        url: "http://cloud-accounting.com/wp-admin/admin-ajax.php",
        data: post_data,
        dataType: "json",
        cache: false,
        error: function (jqHXR, textStatus, errorThrown) {
            console.error("it is not working   "+textStatus, errorThrown);
        },
        success: function () {
            console.log("it is working");
        }
    
    })
})
代码给了我成功,但它不起作用,我在请求前后都看到了相同的结果

1 个回复
最合适的回答,由SO网友:MikeeeGeee 整理而成

我认为你实际上没有收到javascript发送的帖子ID。

function toggle_task_status () {
    $post_id = $_POST[\'data\'][\'post_id\'];
    $update = update_post_meta($post_id , \'task_status\', \'open\');
    if($update){
        wp_send_json(\'success\');
    } else {
        wp_send_json(\'fail\');
    }
    wp_die();
}
然后在javascript中

success: function (response) {
    console.log(response); // should be either \'success\'  or \'fail\'
}

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: