十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
方法一(错误):修改WordPress源代码
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了泌阳免费建站欢迎大家使用!
修改wp-includes/defaults-filter.php,将其中的:
1add_action('wp_head', 'wp_generator');
改成:
1remove_action('wp_head', 'wp_generator');
相信现在已经没人还傻到去修改WordPress源文件来实现某种功能了吧?下次WordPress更新又得重新修改,实在是累!
方法二(错误):直接删除wp_head()
因为本文开头那段泄漏WordPress版本号的代码,一般是主题文件header.php中的wp_head()函数输出的,并且这个函数会输出一些无用的代码,所以有些人干脆来个痛快,直接把wp_head()函数删掉了事。只是他们没有想过,很多插件/主题会通过这个函数进行一些操作,删掉这个函数将使这些插件/主题无法工作。兴许,下次安装个插件,死活用不了还找不到原因呢!
方法三:remove_action
一个好的方法,也是绝大多数教程提供的方法,是在当前主题的functions.php中添加以下代码:
1remove_action('wp_head', 'wp_generator');
这样就可以从网站的head中移除本文开头提到的那段含有版本号的代码。但是,这里我要打击一下各位,最近在露兜博客留言的使用WordPress的站长,几乎没有一个站点能够完全隐藏掉WordPress版本号。打开你们的feed源,如,有没有看到这个:
1generator;/generator
啊啊!3.8不就是WordPress的版本号吗?再随便看看你的一篇文章的网页源代码,是否会看到下面的几段类似代码呢:
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 替换成其他数字,以免被别人猜出
$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后台右下角也会显示WordPress版本号,leiming网友提供了:去除此版本号的代码。不过个人觉得,如果开放了后台,从后台的界面风格也很好判断WordPress的版本,毕竟从我使用WordPress至今,WordPress已经换过4次界面了。
blueionic反馈,WordPress安装目录下的readme.html也会泄漏版本,每次更新后记得删除。
David网友提供了更多可能泄漏版本号的地方:点此查看
这些小工具都是可以移除的。对性能上有多少帮助暂时不清楚,但是对一些性能较差的服务器或许有一定的帮助性。有一些喜欢简洁的朋友也不喜欢隐藏而是直接移除。
下面就说说移除WordPress仪表盘(dashboard)页面和自带小工具的方法。
方法/步骤
移除某些WordPress自带的小工具
把下面的函数扔进functions.php就行了。请注意:你可以根据自己的实际需要注释掉下面的某行或某些行:
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 );
你可以根据某个项目的实际需要移除了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
这个你可以放心大胆的全部移除,当然也可以按照你的需求来决定是否留下某一个小工具。
大多数的WordPress用户不喜欢看到网站前端的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');
好了,刷新下网页,看看管理面板使用的CSS已经JS是不是都没有了,你可以自行修改千前面的网址?满意请采纳