沃梦达 / 编程技术 / CMS教程 / 正文

php-从WordPress数据库中删除不必要的metatable?

每当我注销时,我想从WordPress数据库中删除一些不必要的metatable.我使用了下面的代码,但是它不起作用.我的意思是这不是删除我提到的表.?phpfunction delete_useless_post_meta() {global $wpdb;$table = $wpdb-...

每当我注销时,我想从WordPress数据库中删除一些不必要的metatable.
我使用了下面的代码,但是它不起作用.我的意思是这不是删除我提到的表.

<?php
function delete_useless_post_meta() 
{
  global $wpdb;
  $table = $wpdb->prefix.'postmeta';
  $wpdb->delete ($table, array('meta_key' => '_edit_last'));
  $wpdb->delete ($table, array('meta_key' => '_edit_lock'));
  $wpdb->delete ($table, array('meta_key' => '_wp_old_slug')); 
}
add_action('wp_logout','delete_useless_post_meta');
?>

解决方法:

最好不要直接与数据库进行交互,尤其是在发出DELETE语句时,因为单个错字会破坏意想不到的数据.而是使用WordPress函数获取所有用户ID的列表,然后分别删除每个用户的用户元字段,如下所示:

$all_user_ids = get_users( 'fields=ID' );
foreach ( $all_user_ids as $user_id ) {
    delete_user_meta( $user_id, 'your_meta_key_to_delete' );
}

功能参考:
https://codex.wordpress.org/Function_Reference/get_users
https://codex.wordpress.org/Function_Reference/delete_user_meta

要么

其他选项,例如,您可以使用Adminimize插件-Adminimize plugin

本文标题为:php-从WordPress数据库中删除不必要的metatable?

基础教程推荐