當(dāng)前位置:首頁>WordPress建站>網(wǎng)站維護(hù)>WordPress刪除重復(fù)的自定義字段(Custom Fields)

WordPress刪除重復(fù)的自定義字段(Custom Fields)

自定義字段(Custom Fields)為WordPress提供了非常有用的擴(kuò)展功能。倡萌在本地測試主題調(diào)用最近瀏覽量最多的文章的時(shí)候,發(fā)現(xiàn)居然存在重復(fù)的文章,查看后發(fā)現(xiàn),該文章存在兩個(gè)同樣的字段 views,如下圖所示:

duplicate-custom-fields-wpdaxue_com

出現(xiàn)這種情況,可能是由于網(wǎng)站搬家的導(dǎo)出導(dǎo)入文章造成的,下面分享兩種方法刪除重復(fù)的自定義字段(只保留一個(gè))。

重要提示:請(qǐng)先備份和下載網(wǎng)站的數(shù)據(jù)庫文件,然后再使用下文的方法!

方法1:通過phpMyAdmin刪除

登錄的 phpMyAdmin 面板(不會(huì)的請(qǐng)先自己閱讀 phpMyAdmin 相關(guān)文章),然后使用下面的 SQL 語句進(jìn)行刪除即可:

delete from wp_postmeta
where meta_id in (
       select *
       from (
               select meta_id
               from wp_postmeta a
               where a.meta_key = 'views'
               and meta_id not in (
                       select min(meta_id)
                       from wp_postmeta b
                       where b.post_id = a.post_id
                       and b.meta_key = 'views'
               )
       ) as x
);

請(qǐng)根據(jù)自己的實(shí)際,修改第 1、6、10 行的 wp_postmeta 的前綴 wp_(如果你的數(shù)據(jù)庫前綴不是wp_ 的話);本例的第 7 、12 行 的 views 就是要?jiǎng)h除的自定義字段,請(qǐng)自行修改。

方法2:通過PHP代碼刪除

如果你沒辦法通過phpMyAdmin操作數(shù)據(jù)庫,那你可以使用下面的方法。

1.在網(wǎng)站的根目錄新建一個(gè)名為 remove-duplicate-custom-fields.php 文件,復(fù)制下面的代碼到該文件,保存:

<?php
define('WP_USE_THEMES', false);
require('wp-blog-header.php');

    define( 'WP_DEBUG_DISPLAY', true ); 
    ini_set( 'display_errors', true );
    $allposts = get_posts('numberposts=-1&post_type=post&post_status=any');
    $keys = array('views','test_meta');//要檢索的自定義字段
    foreach ( $keys as $key ) {
        foreach( $allposts as $postinfo) {
            // 獲取(上面所填寫的)自定義字段的值
            $postmeta = get_post_meta($postinfo->ID, $key);

            if (!empty($postmeta) ) {
                // 刪除這篇文章的(上面所填寫的)自定義字段
                delete_post_meta($postinfo->ID, $key);

                // 插入一個(gè)且只有一個(gè)(上面所填寫的)自定義字段
                update_post_meta($postinfo->ID, $key, $postmeta[0]);
            }
        }
    }
?>

注意修改第 8 行的字段,本例刪除的是 ‘views’和’test_meta’ 兩個(gè)字段,請(qǐng)自行修改(多個(gè)字段使用半角英文逗號(hào)隔開)。

2.通過瀏覽器訪問 http://你的域名/remove-duplicate-custom-fields.php,稍等片刻,即可刪除多余的重復(fù)字段啦!

參考資料:http://wordpress.stackexchange.com/questions/15209

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
網(wǎng)站維護(hù)

使用Old Core Files插件刪除WordPress版本升級(jí)后無用的老文件

2013-7-4 8:13:00

WordPress插件網(wǎng)站維護(hù)

WordPress批量刪除文章的插件:Bulk Delete(已漢化)

2013-7-15 8:46:58

2 條回復(fù) A文章作者 M管理員
  1. 可以操控?cái)?shù)據(jù)庫來進(jìn)行刪除!

  2. 教授你好,我對(duì)PHP不太了解,我想問下,假設(shè)我所有的文章都帶有一個(gè)meta的字段,該怎樣讓一部分文章批量刪除meta字段呢?還有一個(gè)就是能否實(shí)現(xiàn)讓一個(gè)字段定時(shí)刪除,期待您的回復(fù),非常感謝!

?
個(gè)人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

仪陇县| 马关县| 邻水| 祥云县| 清丰县| 汾阳市| 尚义县| 吉首市| 南京市| 林甸县| 广南县| 墨江| 三原县| 电白县| 宜兰县| 府谷县| 江西省| 贵定县| 保山市| 江油市| 金堂县| 宜城市| 抚松县| 广州市| 璧山县| 榆树市| 邓州市| 仙居县| 林西县| 姜堰市| 蒲城县| 威宁| 山丹县| 聊城市| 清苑县| 宝清县| 来安县| 满洲里市| 同德县| 桐乡市| 玛沁县|