WordPress是否提供了一种使用时回滚的方法,例如,update_post_meta
或wp_insert_post
?
E、 g.我正在插入一个新帖子,并在一个函数中为其提供一些帖子元:
some_wp_transaction_init_function();
try{
$post_id = wp_insert_post($args, true);
update_post_meta($post_id, \'meta_key\', \'meta_value\');
}catch(Exception $e){
some_wp_rollback_function();
}
some_wp_commit_function();
或者我必须使用香草SQL,或者
$wpdb
对象
谢谢
SO网友:Cyclonecode
wordpress中没有处理事务的函数,但您可以轻松地使用$wpdb
对象进行简单查询以实现此目的。以下函数将启动一个事务,然后向数据库中插入一个新用户,最后回滚当前事务。为了使交易永久化,您可以使用$wpdb->query(\'COMMIT\');
function test_transaction() {
global $wpdb;
// begin transaction
$wpdb->query(\'START TRANSACTION\');
$user = array(
\'user_pass\' => \'sample_password\',
\'user_login\' => \'sample_login\',
\'user_email\' => \'[email protected]\',
\'first_name\' => \'sample_firstname\',
\'last_name\' => \'sample_lastname\',
);
$user_id = wp_insert_user($user);
// roll back everything - e.g remove the new user record from the database
$wpdb->query(\'ROLLBACK\');
};