公共帖子-防止重复提交表单

时间:2011-07-29 作者:Tom Auger

我正在页面上创建一个公共表单,允许未注册(公共)访问者创建自定义帖子类型的帖子。

我用的是nonces,naiveley认为一旦使用就会过期。事实似乎并非如此。

This post 似乎通过创建一个元字段并在创建帖子之前验证它不存在来解决这个问题。

是否有防止双重表单提交(不需要编写元字段)的最佳实践

T

1 个回复
SO网友:Bainternet

我不知道这是否是最佳实践,但我也遇到了类似的问题,我最终通过自定义sql查询检查标题是否已经存在于我的帖子类型中,并过滤了重复的帖子,我将其连接到wp_insert_post_data 过滤器挂钩。

add_filter(\'wp_insert_post_data\',\'prevente_duplicates\');
function prevente_duplicates($data,$postarr){
    $count = $wpdb->get_results($wpdb->prepare("SELECT count(id)
            FROM $wpdb->posts
            WHERE post_type = \'MY_POST_TYPE_NAME\'
            AND post_title = \'%s\'",$data[\'post_title\']));
    if ($count > 0 ){
        return false;
    }
    return $data;
}

结束

相关推荐

为什么我需要在使用wp_nonce_field()之前检查它是否存在

我真的不明白为什么在运行nonce函数之前要检查它是否存在。。。if ( function_exists(\'wp_nonce_field\') ) wp_nonce_field(\'gmp_nonce_check\'); 我理解它的向后兼容性。。。还要注意您是如何验证wp_nonce_field 函数在尝试调用它以实现向后兼容性之前已存在但如果我在邮件背面检查,它会不会破裂if ( isset($_POST[\'submit\']) ) { check_a