Wordpress-防止自定义字段值重复

Wordpress- prevent duplication of custom field value

我想检查 table wp-postmeta 数据库中名为 cf_isbnmeta-key 的值。如果值重复,则阻止插入内容。

我有一段代码,如果我在前端 post-input 中将 xxxxxxx 值放入我的 ISBN 字段,它可以正常工作,但要点是使用查询更改 xxxxxxx检查数据库中已存在的值。

有php高手知道如何帮助我吗?

function wpufe_isbn_validation( $errors ) {
    if( $_POST['cf_isbn'] == 'xxxxxxx' ) {
        $errors[] = 'this ISBN is already in database';
    }

    return $errors;
}
add_filter( 'wpuf_add_post_validation', 'wpufe_isbn_validation' );

您应该可以这样做:

function wpufe_isbn_validation( $errors )
{
    global $wpdb;
    $check = $wpdb->query( $wpdb->prepare("
    SELECT *
    FROM wp-postmeta
    WHERE meta_key = cf_isbn AND meta_value = ".$_POST['cf_isbn']) );


    if(!empty($check))
    {
       return true;
    }
    else
    {
       return false;
    }
}
add_filter( 'wpuf_add_post_validation', 'wpufe_isbn_validation' );

然后您可以根据返回的内容简单地执行另一个 function/piece 代码。显然如果上面returns为真,那么ISBN是重复的,不需要插入。