Remover postar as chaves meta

4

Eu tenho muitas chaves pós-meta que não uso mais, e estou tentando descobrir como excluí-las para que elas não sejam mais exibidas na lista de campos personalizados no painel de administração.

Esse código excluirá os valores meta de postagem:

function hp_batch_delete_post_meta(){

    // get array of all post ids
    $post_ids = get_posts( array(
        'numberposts'   => -1,
        'fields'        => 'ids',
        'post_type'     => array('ad_upload','post', 'page'),
        'post_status'   => array('publish', 'auto-draft', 'trash', 'pending', 'draft'),
    ) );

    // remove post meta for each post
    foreach( $post_ids as $post_id ) { 
        delete_post_meta($post_id, 'my_postmeta_key_1');
        delete_post_meta($post_id, 'my_postmeta_key_2');
        delete_post_meta($post_id, 'my_postmeta_key_3');
    }
}
add_action('init', 'hp_batch_delete_post_meta');

Mas eu gostaria de remover completamente as meta-keys também para que elas não apareçam na lista de administradores.

Qualquer ajuda apreciada.

    
por Andy 18.11.2016 / 21:06

2 respostas

1

Achei isso apenas por meio de uma pesquisa no Google ( Source )

Você precisa alterar as chaves de valores encontrados conforme desejar. No entanto, é altamente recomendável fazer um backup do banco de dados antes de executar este código.

<?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');
?>
    
por Ranuka 19.11.2016 / 03:00
1

Se você quiser excluir chaves com um critério curinga de algum tipo (como eu fiz), então você pode fazer isso diretamente no SQL.

DELETE FROM 'wp_postmeta' WHERE 'meta_key' LIKE 'weather_%'
    
por Chris Rae 01.11.2017 / 18:38

Tags