首页 > 解决方案 > 从 WordPress 数据库中删除不必要的元表?

问题描述

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

<?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');
?>

标签: phpwordpress

解决方案


最好不要直接与数据库交互,尤其是在发出 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 plugin - Adminimize plugin


推荐阅读