用+1|Wordpress增加包含文本+数字的DB值


Increase DB value containing Text + Numbers with +1 | Wordpress

用我的一种非强语言PHP构建一个插件。

在这个插件中,我需要一个函数为我存储一个ID,并在每次执行时以给定的值增加它W通过这段代码,我可以实现:对于每一次执行,使用+1 增加给定值

$wpdb->query("UPDATE `wp_selector` SET `name`= name+1  WHERE 1"); 

每次执行的结果:1、2、3、4、5等

我试着用同样的方法,我的初始值是"ABC000001",试图实现ABC000001,ABC000002。。。ABC056211

结果:1,2,3..

当插件激活时,我会创建一个表,并将我的初始值(如"ABC000001")放在"name"中

我如何用+1增加值,并保持我的值的结构,所以它将转到"ABC000001"并继续递增,所以它最终会像"ABC999999"而不是"ABC00000999999"

存储自定义全局数据是wp_options表的用途,Wordpress有一些功能可以帮助您做到这一点。根据你想要它的工作方式,你可以采取几种不同的方法,但我会这样做。。。

function myplugin_create_id() {
    //Check if you have an ID stored
    $current_id = get_option( 'myplugin_id', 1 );
    //Add one to create new ID
    $new_id = $current_id + 1;
    //Update option in DB
    update_option( 'myplugin_id', $new_id );
    //Create string in correct format
    $formatted_id = 'ABC';
    $formatted_id .= str_pad( $current_id, 6, "0", STR_PAD_LEFT);
    //Return formatted ID
    return $formatted_id;
}

此函数在选项表中存储一个数字,每次将数字加1,并通过在用"ABC"存储的数字前加一个前缀并使用str_pad()确保数字字符串为6位数来返回一个格式化字符串。

现在,每次你想生成一个新的ID,你可以使用。。。

$id = myplugin_create_id();

希望这就是你想要的答案。

问候

Dan