關(guān)于WP的自動(dòng)修訂、自動(dòng)保存、自動(dòng)草稿
- 原文參考:詳情
自動(dòng)保存(Auto-Save),跟Word的自動(dòng)保存功能類似。可以防止斷電、瀏覽器關(guān)閉造成的數(shù)據(jù)未保存。 WP默認(rèn)每隔60秒自動(dòng)保存一次,這個(gè)功能只會(huì)創(chuàng)建一條記錄,每隔60秒更新一次,當(dāng)文章發(fā)布后,這條記錄的post_status會(huì)從draft變成publish,沒有一點(diǎn)浪費(fèi)的地方。
禁用自動(dòng)保存后的副作用:預(yù)覽功能不可用,必須保存為草稿才能預(yù)覽。
文章修訂(Post-Revisioning),編輯文章時(shí),如果文章標(biāo)題、內(nèi)容或者摘要等字段發(fā)生變化,WordPress就會(huì)將當(dāng)前版本保存為一個(gè)修訂版,類似于我們用的快照功能,方便退回。此功能會(huì)進(jìn)行數(shù)據(jù)庫的讀寫,一般也很少用到,建議直接關(guān)閉即可。
自動(dòng)草稿(Auto-draft),自動(dòng)草稿在我們在后臺(tái)點(diǎn)寫文章就會(huì)創(chuàng)建,如果我們文章保存或者發(fā)布都會(huì)進(jìn)行狀態(tài)轉(zhuǎn)變,若我們沒有做或者直接關(guān)閉了瀏覽器就會(huì)形成這么一條草稿。
修訂和自動(dòng)草稿都會(huì)占用一個(gè)ID,所以,如果像您的URL是ID格式的話,就會(huì)產(chǎn)生不連續(xù)的狀態(tài)。
- 原文參考:詳情
所謂的文章修訂版就是當(dāng)每次修改文章的時(shí)候,WordPress 程序都會(huì)自動(dòng)保存一次修改之前的文章版本,專業(yè)術(shù)語叫做版本控制,這樣保證了在誤修改的情況下可以還原之前的內(nèi)容,不可否認(rèn)這個(gè)功能還是非常的人性化的,但是對于像子凡這樣追求數(shù)據(jù)干凈不多于的人來說,這個(gè)功能似乎也并沒有太大的意義,而且使用 WordPress 的許多小網(wǎng)站或博客都是沒有這種必要的,重點(diǎn)是會(huì)在數(shù)據(jù)庫產(chǎn)生極多無用的數(shù)據(jù),從而使得數(shù)據(jù)庫越來越臃腫。
雖然子凡也曾因?yàn)楦鞣N突發(fā)情況導(dǎo)致數(shù)據(jù)丟失或者想回退,但是依然選擇禁用,因?yàn)槠綍r(shí)寫文章都習(xí)慣同記事本直接寫,在電腦上,然后邊寫邊保存,而且做到了文章格式的極簡化。
禁用 WordPress 自動(dòng)保存
當(dāng)前使用主題根目錄下的?functions.php?文件<?php下添加代碼
//禁用自動(dòng)保存(方法一)
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
//禁用自動(dòng)保存(方法二)
add_action('wp_print_scripts', 'fanly_no_autosave');
function fanly_no_autosave() { wp_deregister_script('autosave'); }
提示,以上是兩種禁止 WordPress 自動(dòng)保存的方法,所以編輯長文章前請注意手動(dòng)保存,或者使用記事本等軟件先編輯好在復(fù)制到 WordPress 編輯框中發(fā)布,以防在寫輸入突發(fā)情況數(shù)據(jù)丟失的情況發(fā)生。
2.禁用 WordPress 修訂版本
打開主題文件夾中的?functions.php
,將如下代碼添加至文件的<?php
后,保存。(主題文件夾在wp-content/themes
)
//禁用所有文章類型的修訂版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) { return 0;}
//禁用某種文章類型的修訂版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) {
if ( 'post_type' == $post->post_type ) { //引號(hào)中 post_type 改為你想禁用修訂版本的文章類型
return 0;
}
return $num;
}
常見 WordPress 常見默認(rèn)有的文章類型有:
- 文章(Post Type: ‘post’)
- 頁面(Post Type: ‘page’)
- 附件媒體(Post Type: ‘a(chǎn)ttachment’)
- 修訂版本(Post Type: ‘revision’)
- 導(dǎo)航菜單(Post Type: ‘nav_menu_item’)
當(dāng)然如果網(wǎng)站使用了自定義文章類型,那么就是自定義的名稱了。
關(guān)于 WordPress 自動(dòng)草稿
不得不吐槽一下這個(gè)功能,讓人有些不爽,凡是我們通過 WordPress 后臺(tái)點(diǎn)擊“寫文章”,WordPress 就會(huì)自動(dòng)在數(shù)據(jù)庫里面創(chuàng)建一個(gè)自動(dòng)草稿的記錄,如果你繼續(xù)添加內(nèi)容發(fā)布,這個(gè)自動(dòng)草稿會(huì)被自動(dòng)轉(zhuǎn)換為你的文章,也就是說會(huì)自動(dòng)改變狀態(tài),這就是一篇正常的文章了,沒有任何冗余的數(shù)據(jù)或者自動(dòng)草稿的存在,那么另外一種情況就是當(dāng)我們點(diǎn)擊寫文章后,直接離開或者刷新了,WordPress 的數(shù)據(jù)表中將會(huì)留下一條自動(dòng)草稿的記錄。所以我們只能通過一些插件去清除,例如子凡之前推薦的《WordPress 數(shù)據(jù)庫清理優(yōu)化插件 WP Clean Up》。
而且 WordPress 的自動(dòng)草稿沒辦法通過 WordPress wp-config.php 配置,或者添加相關(guān)的代碼直接禁用,當(dāng)然這個(gè)也是可以理解的,因?yàn)楫?dāng)我們點(diǎn)擊寫文章后 WordPress 就自動(dòng)的給新文章在數(shù)據(jù)庫中指定了一個(gè)文章 ID 記錄,只是文章的默認(rèn)狀態(tài)被設(shè)置為自動(dòng)草稿了而已。所以我們可以確定,WordPress 的文章 ID 并不是在我們點(diǎn)擊發(fā)布或者保存才及時(shí)生成的,而是在我們點(diǎn)擊寫文章就指定了的。所以也不必過于糾結(jié)這個(gè)問題了,只有我們養(yǎng)成一個(gè)良好的發(fā)布文章的習(xí)慣,也是可以避免這個(gè)問題的。
當(dāng)然網(wǎng)上還有通過修改 WordPress 源碼來實(shí)現(xiàn)禁止 WordPress 自動(dòng)草稿的方法,這里子凡就不做評論了,只能說大家都挺能折騰的,因?yàn)?WordPress 每次升級會(huì)替換文件,所以這樣是沒有意義的。
寫在最后:以上方法均可實(shí)現(xiàn)相關(guān)功能,大家選擇性使用就好,子凡個(gè)人不太喜歡使用方法一中利用修改 WordPress 配置文件來實(shí)現(xiàn)功能,不是因?yàn)椴缓茫赡苁亲约盒睦碛X得不喜歡改配置文件,僅此而已。當(dāng)然,以上方法子凡是在 WordPress 4.7 版本實(shí)測有效的啦!理論上是支持 3.0 版版以后的,
- 原文參考:詳情
修訂
WordPress自帶記錄文章修訂版本的功能,每次編輯或修改文章,系統(tǒng)都會(huì)自動(dòng)生成并保存一個(gè)修訂版。長此以往數(shù)據(jù)庫將產(chǎn)生大量數(shù)據(jù)冗余,最終拖慢網(wǎng)站的運(yùn)行速度。
我們可以定期清理或永久關(guān)閉此功能。
定期清理
打開主題文件夾中的?functions.php
,將如下代碼添加至文件的<?php
后,保存。(主題文件夾在wp-content/themes
)
$wpdb->query( "
DELETE FROM $wpdb->posts
WHERE post_type = 'revision'
" );
打開網(wǎng)站任意文章刷新,返回wordpress后臺(tái)可以看到歷史修訂版本已被清理干凈,然后刪除上述代碼,需要清理時(shí)再添加。
關(guān)閉修訂
如果清理了以往的文章歷史版本,并且不想再產(chǎn)生這些內(nèi)容,可以關(guān)閉此功能。
WordPress 提供了關(guān)閉方法,在?wp-setting.php
?中有一個(gè)變量?WP_POST_REVISIONS
,把它設(shè)置為?false
?就可以屏蔽 WordPress 日志修訂功能。
操作過程:打開網(wǎng)站根目錄,找到配置文件wp-config.php
?將下方代碼添加其中,保存。
define('WP_POST_REVISIONS', false);