WordPress前台不加载自带jQuery,去版本号等信息

现在很多WordPress主题和插件都使用jQuery,而且一般会直接调用Google的jQuery库,减轻我们服务器的负担,但WordPress本身会加载jQuery,这样就造成了重复载入,如下图所示:

那么如何让WordPress前台不加载本身jQuery?其实很简单,直接打开/wp-includes/script-loader.php文件,查找“jquery.js”字符串,在第122行能找到这么一句:

	$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.7.2' );

由于在后台必须得用到这个库,我们不能将这一句直接删除或者注释掉。那么加个判断,让这一句只在后台的时候运行就信了,将其改为:

	if(is_admin()){
	$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.7.2' );}

这样就OK啦!

注:由于直接修改了WordPress核心文件,如果你以后进行版本升级,记得查看这次修改是否被覆盖!

去掉版本号等信息

WordPress默认会加载wp_head,里面包含了版本号在内的很多信息,如下图所示:

如何去除这些多余的信息呢?也许你会说直接删除,但是你安装的插件一般都需要wp_head来加载插件必须的css和JS文件,所以我们不能直接删除。只要在主题根目录下的function.php中加入如下代码:

//移除顶部多余信息
function wpbeginner_remove_version() { 
return ; 
} add_filter('the_generator', 'wpbeginner_remove_version');//wordpress的版本号
remove_action('wp_head', 'feed_links', 2);// 包含文章和评论的feed 
remove_action('wp_head', 'index_rel_link');//当前文章的索引 
remove_action('wp_head', 'feed_links_extra', 3);// 额外的feed,例如category, tag页 
remove_action('wp_head', 'start_post_rel_link', 10, 0);// 开始篇 
remove_action('wp_head', 'parent_post_rel_link', 10, 0);// 父篇 
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); // 上、下篇. 
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );//rel=pre
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 );//rel=shortlink 
remove_action('wp_head', 'rel_canonical' ); 
remove_action('wp_head', 'wlwmanifest_link'); // 外部编辑器
remove_action( 'wp_head','rsd_link');//ML-RPC

P.S:大部分内容来自:http://www.cmhello.com/remove-wordpress-jquery-and-other-information.html

使用SAE的jQuery节约又拍流量

使用又拍云加速BLOG几天了,在又拍后台的日志里看到,每日使用流量最多的就是jquery,为了节约又拍的流量,并且更好的加速,我们把jquery换成SAE的链接,方法如下。

P.S:如果你和我一样在WP中设置了CDN,我觉得只有方法1适合你!

1.在主题的header.php中找到相关语句改成一下样式:




2.或者是在主题的functions.php添加以下的代码:

//Making jQuery Google API in SAE
function my_scripts_method() {
if (!is_admin()){
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://lib.sinaapp.com/js/jquery/1.7.2/jquery.js');
wp_enqueue_script( 'jquery' );
}
}
add_action(‘wp_enqueue_scripts‘, ‘my_scripts_method’);

如果你需要其他版本,可以访问 http://lib.sinaapp.com/?path=/jquery 获取链接。

NGINX下可用的WP super cache规则

最近把BLOG的缓存换成了WP super cache,但是这个插件默认是运行在APACHE下面的,根据各种度娘谷歌后找到了对应的NGINX下的规则。
1.简洁形:

location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

2.完整形:

location / 
{ 

set $wp_super_cache_file ''; 
set $wp_super_cache_uri $request_uri;

if ( $request_method = POST ) 
{ 
set $wp_super_cache_uri ''; 
}

if ( $query_string ) 
{ 
set $wp_super_cache_uri ''; 
}

if ( $http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) 
{ 
set $wp_super_cache_uri ''; 
}

if ( $wp_super_cache_uri ~ ^(.+)$ ) 
{ 
set $wp_super_cache_file /wp-content/cache/wp_super_cache/$http_host/$1index.html; 
}

if ( -f $document_root$wp_super_cache_file ) 
{ 
rewrite ^(.*)$ $wp_super_cache_file break; 
}

if (-f $request_filename) 
{ 
expires 30d; 
break; 
}

if (!-e $request_filename) 
{ 
rewrite ^(.+)$ /index.php?q=$1 last; 
} 
}

说实话,对于这两种规则的区别不大搞得清,但是经测试都是可以用的,而且根据查看源码显示的都能正确读取到缓存,具体用哪一种就看自己的喜好了。

[转]WordPress在Nginx中启用Apache的mod_rewrite

其实不是真的可以另到 Nginx 支持 Apache 的 mod_rewrite 的.因为如果你的web服务器是 Nginx ,那么你的 WordPress 就会提示你的服务器环境不支持 mod_rewrite 了,但实际上是支持的,例如安装了 WP Super Cache 这插件就有这样的提示了,现在我们只要添加一行代码就可以关闭这个提示,欺骗WordPress ,让它认为是支持 mod_rewrite 方法是在主题的 functions.php 文件添加下面的代码:

add_filter('got_rewrite', 'nginx_has_rewrites');
function nginx_has_rewrites() {
    return true;
}

另外,因为Nginx运行PHP是用PHP-FPM的,所以有时会导致WordPress认为php没有写权限,表现为无法自动升级,和升级插件等,下面这个代码可以修改这个错误.

add_filter('filesystem_method', 'nginx_make_filesystem_direct');
function nginx_make_filesystem_direct() {
    return 'direct';
}

来自:http://imcat.in/wordpress-on-nginx-apache-mod_rewrite-enabled/

[转载]准确判断PHP上传的文件头

上传文件的功能是各类站点的基本功能,但是网络上也存在一些用心不良的人伪装图片或其他文件,上传一些木马或病毒到服务器上。普通php函数文件类型函数无法正确识别,安全的做法应该是头文件判断:

";
echo "gif:".checkTitle('img/weather.gif')."
"; echo "gif:".checkTitle('img/7768752.gif')."
"; echo "gif:".checkTitle('img/gif001.gif')."
"; echo "gif:".checkTitle('img/gif002.gif')."
"; echo "gif:".checkTitle('img/gif007.gif')."
"; echo "jpeg:".checkTitle('img/weather.jpg')."
"; echo "jpeg:".checkTitle('img/0001.jpg')."
"; echo "jpeg:".checkTitle('img/1.jpg')."
"; echo "jpeg:".checkTitle('img/0002.jpg')."
"; echo "jpeg:".checkTitle('img/4.jpg')."
"; echo "jpeg:".checkTitle('img/5.jpg')."
"; echo "jpeg:".checkTitle('img/71885.jpg')."
"; echo "jpeg:".checkTitle('img/imgad.jpg')."
"; echo "png:".checkTitle('img/weather.png')."
"; echo "png:".checkTitle('img/1.png')."
"; echo "png:".checkTitle('img/2.png')."
"; echo "png:".checkTitle('img/3.png')."
"; echo "png:".checkTitle('img/4.png')."
"; echo "png:".checkTitle('img/5.png')."
"; echo hexdec(89)."
"; echo hexdec(50)."
"; //6072,102119 ?>