删除除特色图片外的所有帖子元

时间:2015-12-11 作者:IXN

我的目标是清除数据库条目。我从blogger迁移了很多无用的post\\u meta。我发现了一个插件(db reset),它可以选择重置/删除所有post meta。然而,如果我删除了所有帖子元,我就会丢失我的特色图片(帖子缩略图)设置。

我对phpmyadmin不是很熟悉。如何删除除特色图片外的所有帖子元?

1 个回复
最合适的回答,由SO网友:Kvvaradha 整理而成

下面的代码将帮助您删除除帖子缩略图以外的所有帖子元。

    function kv_delete_all_meta_except_featuredimg(){
    $args = array( \'posts_per_page\' => -1, \'post_status\' => \'any\',  \'post_type\' => array(\'attachment\', \'page\',\'post\')); 
    $articles= get_posts( $args );

    foreach($articles as $article){
        if($article->post_type == \'attachment\'){
            $myvals = get_post_meta($article->ID);
            foreach($myvals as $key=>$val)  {

                if($key == \'_wp_attached_file\' || $key == \'_wp_attachment_metadata\'){} else {
                    delete_post_meta($article->ID, $key);

                }
            }
        }else {
            $myvals = get_post_meta($article->ID);
            foreach($myvals as $key=>$val)  {
                if($key != \'_thumbnail_id\' ){
                    delete_post_meta($article->ID, $key);
                }
            }
        }
    }


}
add_action(\'init\',\'kv_delete_all_meta_except_featuredimg\');
Note :*** 请记住,这将删除所有post元键及其关联值。因此,在继续操作之前,请先进行备份。只需在主题上添加此功能functions.php. 这里我假设你可能只有这些帖子类型attachment, post, page. 如果您有任何额外的帖子类型,请添加它。

你可以在这里阅读更多细节,我写了一篇文章。Kvcodes

相关推荐

将MySQL转换为WordPress$WPDB

我正在从3.7升级一个古老的Wordpress网站。它有一些SQL查询请求,在3.9以上版本之后无法运行,您现在必须通过$WPDB连接到DB(https://codex.wordpress.org/Class_Reference/wpdb). 我对此进行了初步尝试,但挂断了mysql\\u fetch\\u array部分的连接,也不清楚我所做的是否正确。mysql\\u fetch\\u数组似乎需要使用get\\u结果(https://developer.wordpress.org/reference/