Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否从WordPress数据库中删除不必要的元表?_Php_Wordpress - Fatal编程技术网

Php 是否从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->

每当我注销时,我想从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');
?>

最好不要直接与数据库交互,尤其是在发出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');
这个钩子对管理员来说工作正常