Php 是否从WordPress数据库中删除不必要的元表?
每当我注销时,我想从WordPress数据库中删除一些不必要的元表。 我使用了下面的代码,但它不起作用。我的意思是它没有删除我提到的表Php 是否从WordPress数据库中删除不必要的元表?,php,wordpress,Php,Wordpress,每当我注销时,我想从WordPress数据库中删除一些不必要的元表。 我使用了下面的代码,但它不起作用。我的意思是它没有删除我提到的表 <?php function delete_useless_post_meta() { global $wpdb; $table = $wpdb->prefix.'postmeta'; $wpdb->delete ($table, array('meta_key' => '_edit_last')); $wpdb->
<?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_ID=get_users('fields=ID');
foreach($user\u id为$user\u id){
delete_user_meta($user_id,'your_meta_key_to_delete');
}
您想在管理员注销或用户注销时删除吗?@Vel admin。我把它改成了这样的if(当前用户可以('editor')|当前用户可以('administrator'){global$wpdb;$table=$wpdb->prefix.postmeta';$wpdb->delete($table,array('meta_key'=>'));$wpdb->delete($table,array('meta_key'=>'edit_last')));$wpde($table,array('meta_key'=>“=>”)));$wpde($wpde,array('meta_key'=>'\u wp_old_slug'))}
但没有任何更改!添加操作('wp_logout'、'delete_untible_post_meta');
这个钩子对管理员来说工作正常