WordPress是一款基于PHP和MySQL的開源博客系統(tǒng),數(shù)據(jù)存儲在數(shù)據(jù)庫中有以下好處:
創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為長沙縣企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站制作,長沙縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
數(shù)據(jù)安全性高:數(shù)據(jù)庫采用了多種安全機制來保護數(shù)據(jù),例如數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)、訪問控制等,可以有效地保護數(shù)據(jù)的安全性,防止數(shù)據(jù)丟失或被非法訪問。
數(shù)據(jù)組織性強:數(shù)據(jù)庫可以將數(shù)據(jù)按照一定的結(jié)構(gòu)和規(guī)則組織起來,例如將文章、評論、用戶等數(shù)據(jù)分別存儲在不同的表中,方便管理和查詢。
數(shù)據(jù)可擴展性強:數(shù)據(jù)庫可以很方便地擴展和升級,例如增加新的數(shù)據(jù)表、字段、索引等,以滿足不同的需求和應(yīng)用場景。
數(shù)據(jù)處理速度快:數(shù)據(jù)庫采用了高效的查詢和索引機制,可以快速地處理大量的數(shù)據(jù),提高數(shù)據(jù)的處理效率和響應(yīng)速度。
數(shù)據(jù)共享性強:數(shù)據(jù)庫可以通過網(wǎng)絡(luò)共享和訪問,實現(xiàn)不同應(yīng)用之間的數(shù)據(jù)共享和交互,提高數(shù)據(jù)的利用率和效益。
綜上所述,將WordPress的數(shù)據(jù)存儲在數(shù)據(jù)庫中可以提高數(shù)據(jù)的安全性、組織性、可擴展性、處理速度和共享性,為網(wǎng)站的管理和運營提供了很大的便利和支持。
1、徹底清除殘留WordPress主題垃圾數(shù)據(jù)
經(jīng)常換WP主題刪WP主題,裝插件刪插件很正常,但是簡單的刪除并不徹底,數(shù)據(jù)庫會有殘留,多余的數(shù)據(jù)保留在post_meta表格里,久而久之就成了一堆可觀的垃圾。可使用下面的SQL語句來清除不需要的post meta值。有益于加快數(shù)據(jù)庫運行速度,減小數(shù)據(jù)。
處理方法:清理wp_postmeta數(shù)據(jù)表,刪除文章Meta標(biāo)簽,執(zhí)行SQL語句,(建議先備份數(shù)據(jù)庫,以上商法,后進者網(wǎng)絡(luò)均已測試無誤)
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_last’;
2、徹底刪除WP草稿修訂版本殘留數(shù)據(jù)
后臺編輯文章時,系統(tǒng)會自動保存多個修訂的副本。過多的修訂記錄會加重數(shù)據(jù)庫負擔(dān)造成資源浪費,數(shù)據(jù)庫越來越龐大,增加了數(shù)據(jù)檢索影響頁面的加載時間。
處理方法:清理wp_posts數(shù)據(jù)表,刪除草稿修訂版本,執(zhí)行SQL語句
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships bON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID =c.post_id)
WHERE a.post_type = ‘revision’
注意: 此方法將刪除所有的文章的所有修訂版,包括相關(guān)的meta數(shù)據(jù)。
也可以使用插件WP-Cleane處理。
3、批量刪除WordPress所有垃圾評論
遇到N多垃圾評論,一個一個刪除的話會崩潰??墒褂孟旅娴腟QL語句查詢,批量刪除WP垃圾評論也不是難事。
處理方法:執(zhí)行SQL語句
DELETE FROM wp_comments WHEREcomment_approved = ‘spam’;
0 = Comment Awaiting Moderation
1 = Approved Comment
spam = Comment marked as Spam
先用上面方法刪除之前的垃圾評論,以后推薦使用Akismet插件,Akismet擁有廣泛的垃圾留言過濾系統(tǒng),省下很多事。
4、刪除WordPress未使用標(biāo)簽垃圾數(shù)據(jù)
WordPress數(shù)據(jù)庫中,如果你使用一個查詢語句手動來刪除舊的文章,舊的標(biāo)簽卻仍然會保留并在你的標(biāo)簽云/列表中出現(xiàn)。你可以使用下面的方法識別未使用的標(biāo)簽并將它刪除。
處理方法:執(zhí)行SQL語句
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ONwt.term_id=wtt.term_id
INNER JOIN wp_term_relationshipswtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ONwp.ID=wtr.object_id
WHERE taxonomy=’post_tag’
AND ID IS null
AND NOT EXISTS(SELECT * Fromwp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ONwt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
有的人也許會問,這么復(fù)雜的SQL語句,應(yīng)該有WP插件開發(fā)者開發(fā)相應(yīng)的數(shù)據(jù)庫優(yōu)化插件吧。沒錯還真有相關(guān)的優(yōu)化WP數(shù)據(jù)庫插件。
WordPress數(shù)據(jù)庫優(yōu)化插件 wp db manager :可以優(yōu)化、修復(fù)、定期備份、執(zhí)行mysql命令的插件。安裝好這個插件之后,可以選擇Optimize DB優(yōu)化數(shù)據(jù)庫。
1、 在comments.php評論表單中添加自己想要的字段,如:
p
input type="text" name="tel" id="tel" size="22" tabindex="4" /
label for="tel"電話/label
/p
tabindex 這個屬性按照從小到大排,為什么要這樣?你可以自己試試….
2、如果評論表單是使用系統(tǒng)自帶的,那么請用以下方法添加表單字段,如果不是,請略過
add_filter('comment_form_default_fields','comment_form_add_ewai');
function comment_form_add_ewai($fields) {
$label1 = __( '國家/地區(qū)' );
$label2 = __( 'Skype賬號' );
$label3 = __( '電話' );
$label4 = __( '傳真' );
$label5 = __( '地址' );
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
$value5 = isset($_POST['address']) ? $_POST['address'] : false;
$fields['guojia'] =HTML
p
label for="guojia"{$label1}/label
input id="guojia" name="guojia" type="text" value="{$value1}" size="30" /
/p
HTML;
return $fields;
}
3、 接收表單字段并寫入數(shù)據(jù)庫
在主題目錄的 functions.php添加以下代碼
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
//_tel 是存儲在數(shù)據(jù)庫里的字段名字,取出數(shù)據(jù)的就會用到
update_comment_meta($comment_ID,'_tel',$tel);
}
這兩步就可以將數(shù)據(jù)寫入數(shù)據(jù)庫了,不信你試試看
add_action()參數(shù)中的10和2分別表示該函數(shù)執(zhí)行的優(yōu)先級是10(默認值,值越小優(yōu)先級越高),該函數(shù)接受2個參數(shù)。
4、在后臺顯示額外字段
前面兩步只是接收和寫入到數(shù)據(jù)庫,那么要怎么在后臺評論列表中顯示呢?將以下代碼復(fù)制到主題目錄的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '電話' ); //電話是代表列的名字
return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true );
break;
}
如果要在前臺的留言列表中調(diào)用,就用以下代碼,_tel就是你在數(shù)據(jù)庫中存儲的字段名字
?php
$tel = get_comment_meta($comment-comment_ID,'_tel',true);
if( !empty($tel)){
echo "電話".$tel;
}
?
5、 大功告成,看看后臺的評論列表,是不是多了一列電話,那樣的話就沒錯了。
6、如果要移除某一個自帶的表單字段,可以使用以下代碼
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel']);
return $fields;
}
add_filter('comment_form_default_fields', 'tel')