方法一(錯誤):修改WordPress源代碼
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了泌陽免費建站歡迎大家使用!
修改wp-includes/defaults-filter.php,將其中的:
1add_action('wp_head', 'wp_generator');
改成:
1remove_action('wp_head', 'wp_generator');
相信現(xiàn)在已經沒人還傻到去修改WordPress源文件來實現(xiàn)某種功能了吧?下次WordPress更新又得重新修改,實在是累!
方法二(錯誤):直接刪除wp_head()
因為本文開頭那段泄漏WordPress版本號的代碼,一般是主題文件header.php中的wp_head()函數(shù)輸出的,并且這個函數(shù)會輸出一些無用的代碼,所以有些人干脆來個痛快,直接把wp_head()函數(shù)刪掉了事。只是他們沒有想過,很多插件/主題會通過這個函數(shù)進行一些操作,刪掉這個函數(shù)將使這些插件/主題無法工作。興許,下次安裝個插件,死活用不了還找不到原因呢!
方法三:remove_action
一個好的方法,也是絕大多數(shù)教程提供的方法,是在當前主題的functions.php中添加以下代碼:
1remove_action('wp_head', 'wp_generator');
這樣就可以從網(wǎng)站的head中移除本文開頭提到的那段含有版本號的代碼。但是,這里我要打擊一下各位,最近在露兜博客留言的使用WordPress的站長,幾乎沒有一個站點能夠完全隱藏掉WordPress版本號。打開你們的feed源,如,有沒有看到這個:
1generator;/generator
啊??!3.8不就是WordPress的版本號嗎?再隨便看看你的一篇文章的網(wǎng)頁源代碼,是否會看到下面的幾段類似代碼呢:
script type='text/javascript'src='/wp-includes/js/comment-reply.min.js?ver=3.8'/script
link rel='stylesheet' href='/wp-includes/css/admin-bar.css?ver=3.8'type='text/css' /
link rel='stylesheet'href='//fonts.googleapis.com/css?family=Handleever=3.8'type='text/css' /
呵呵,又見3.8,其實WordPress不僅會輸出本文開頭的那段代碼,而且會在feed中輸出版本號,另外,為了更新緩存,某些css和js結尾也會附上WordPress版本號(如以上第2-3行代碼)。
方法四:正確方法
所以,我們還應該移除feed和js/css中的WordPress版本號,在當前主題的functions.php中添加以下代碼:
// 同時刪除head和feed中的WP版本號
function ludou_remove_wp_version() {
return '';
}
add_filter('the_generator','ludou_remove_wp_version');
// 隱藏js/css附加的WP版本號
function ludou_remove_wp_version_strings($src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if( !empty($query['ver']) $query['ver'] === $wp_version ) {
// 用WP版本號 + 12.8來替代js/css附加的版本號
// 既隱藏了WordPress版本號,也不會影響緩存
// 建議把下面的 12.8 替換成其他數(shù)字,以免被別人猜出
$src = str_replace($wp_version, $wp_version + 12.8, $src);
}
return $src;
}
add_filter( 'script_loader_src','ludou_remove_wp_version_strings' );
add_filter( 'style_loader_src','ludou_remove_wp_version_strings' );
另外,在WordPress后臺右下角也會顯示W(wǎng)ordPress版本號,leiming網(wǎng)友提供了:去除此版本號的代碼。不過個人覺得,如果開放了后臺,從后臺的界面風格也很好判斷WordPress的版本,畢竟從我使用WordPress至今,WordPress已經換過4次界面了。
blueionic反饋,WordPress安裝目錄下的readme.html也會泄漏版本,每次更新后記得刪除。
David網(wǎng)友提供了更多可能泄漏版本號的地方:點此查看
這些小工具都是可以移除的。對性能上有多少幫助暫時不清楚,但是對一些性能較差的服務器或許有一定的幫助性。有一些喜歡簡潔的朋友也不喜歡隱藏而是直接移除。
下面就說說移除WordPress儀表盤(dashboard)頁面和自帶小工具的方法。
方法/步驟
移除某些WordPress自帶的小工具
把下面的函數(shù)扔進functions.php就行了。請注意:你可以根據(jù)自己的實際需要注釋掉下面的某行或某些行:
function Yusi_remove_meta_widget() {
unregister_widget('WP_Widget_Pages');
unregister_widget('WP_Widget_Calendar');
//unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Links');
unregister_widget('WP_Widget_Meta');
// unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Text');
// unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_RSS');
unregister_widget('WP_Widget_Tag_Cloud');
//unregister_widget('WP_Nav_Menu_Widget');
/*register my custom widget*/
register_widget('WP_Widget_Meta_Mod');
}
add_action( 'widgets_init', 'Yusi_remove_meta_widget',11 );
你可以根據(jù)某個項目的實際需要移除了WordPress后臺某個小工具的代碼,沒被注釋掉的會被移除。
移除WordPress儀表盤(dashboard)頁面加載的小工具
雖然說每個WordPress后臺管理員都可以在WordPress儀表盤界面最上方的“選項設置”中關閉任何一個已有的小工具,但對不懂技術的博主來說,在WordPress后臺不顯示這些小工具或許更好。
function Yusi_remove_dashboard_widgets() {
global $wp_meta_boxes;
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action('wp_dashboard_setup', 'Yusi_remove_dashboard_widgets',11 );
5
這個你可以放心大膽的全部移除,當然也可以按照你的需求來決定是否留下某一個小工具。
大多數(shù)的WordPress用戶不喜歡看到網(wǎng)站前端的WordPress管理欄面板,當然也有很多去除前端管理面板的方法,然而,他們只是禁用了管理欄,使管理欄的display:none,并沒有將其中的JS,CSS完全移出。這里我們將告訴大家如何完全的移出wordpress前端管理工具欄包括JS,CSS代碼等。
將下面的代碼放到你主題的functions.php中就可以完全移出wordpress前端管理工具欄:
// Disable Admin Bar,
if (!function_exists('df_disable_admin_bar')) { function df_disable_admin_bar() { // for the admin page remove_action('admin_footer', 'wp_admin_bar_render', 1000); // for the front-end remove_action('wp_footer', 'wp_admin_bar_render', 1000); // css override for the admin page function remove_admin_bar_style_backend() { echo ''; } add_filter('admin_head','remove_admin_bar_style_backend'); // css override for the frontend function remove_admin_bar_style_frontend() { echo ''; } add_filter('wp_head','remove_admin_bar_style_frontend', 99); } } add_action('init','df_disable_admin_bar');
好了,刷新下網(wǎng)頁,看看管理面板使用的CSS已經JS是不是都沒有了,你可以自行修改千前面的網(wǎng)址?滿意請采納