因为Gravatar被墙,国内访问无法显示,加载头像失败还影响网页打开速度,不如替换掉,有两个方法。
一是安装插件,有点是随意更换和升级主题不影响使用,缺点也很明显,插件多了影响网站速度。
二是更改主题文件,替换Gravatar地址为国内镜像,现在国内镜像也比较多,推荐两个:
继续阅读 “替换Gravatar头像国内镜像”
分类: wordpress
批量替换wordpress文章内容
更换主机后,发现图片都不显示了,原来是更换后图片的链接变了,一个个改肯定不现实,这就需要用到SQL了。
首先,登录数据库查询包含旧链接的表和字段。
其次,用update语句替换旧链接为新链接。
就用替换图片链接为例,查阅在wp_posts
表里,有两个字段post_content
和guid
包含旧链接内容:
UPDATE wp_posts SET post_content=REPLACE(post_content,'旧链接','新链接')
UPDATE wp_posts SET guid=REPLACE(guid,'旧链接','新链接')
wordpress恢复后台上传路径设置
wordpress3.5版本下后台有上传路径,链接url设置,升级后后台默认没有设置选项,默认的路径是wp-content/uploads
,如果要修改需要手动改设置文件options.php文件,或者修改主题functions.php文件,详见以前的文章。
也可以通过修改主题functions.php
文件,添加下列代码,让后台恢复设置选项:
//恢复后台上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}
wordpress tips:关闭猜测网址和回复的HTML功能
在wordpress里当我们输入一个错误或者不完整的链接时,wp会自动猜测正确的链接地址,从而跳转到猜测网址而不是显示404错误页面
回复里支持html功能是不安全的,也没有必要,我们可以修改主题的functions.php
来关闭这些功能
关闭猜测网址:
add_filter('redirect_canonical', 'stop_guessing');
function stop_guessing($url) {
if (is_404()) {
return false;
}
return $url;
}
关闭回复的HTML功能:
add_filter( 'pre_comment_content', 'wp_specialchars' );
WordPress tips:移除页面源代码里不必要的Meta标签
查看wordpress页面源代码会发现wp_head()
函数会自动添加很多的代码
其中有些并不是我们需要用到的,有些存在还会带来安全隐患,既然如此不如直接去掉
去掉的方法也很简单,使用remove_action
函数
继续阅读 “WordPress tips:移除页面源代码里不必要的Meta标签”
更改WordPress附件默认上传路径
WordPress默认附件上传路径是wp-content/uploads
,我们可以修改为别的目录。对于用子域名来统一管理附件的来说,还是很实用的。
当然只限于在同空间服务区内的目录,如果是外网的话,这么改是没有用的。
继续阅读 “更改WordPress附件默认上传路径”
禁用(替换)google字体
以前在《解决fonts.googleapis.com加载慢》里说过如何手动更改google fonts到360 cdn来加速网站,其实wordpress的这个open-sans字体功能在国内确属鸡肋,改掉不如直接禁掉。
修改方法:
打开主题functions.php
文件,添加如下代码:
function remove_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');
}
add_action( 'init', 'remove_open_sans' );
如果需要同时修改掉前台和后台的话,这么修改:
if (!function_exists('remove_wp_open_sans')) :
function remove_wp_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
}
//修改掉前台字体
add_action('wp_enqueue_scripts', 'remove_wp_open_sans');
//修改掉后台字体
add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
endif;
替换google字体为360字体:
以前说过的手动修改方法需要修改wp的核心代码,太过危险,我们可以修改主题的functions.php
来达到一样的效果:
function my_replace_open_sans() {
wp_deregister_style('open-sans');
wp_register_style( 'open-sans', '//fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600' );
wp_enqueue_style( 'open-sans');
}
add_action( 'wp_enqueue_scripts', 'my_replace_open_sans' );
add_action('admin_enqueue_scripts', 'my_replace_open_sans');
wordpress tips:不加载默认的jQuery库
修改wordpress的时候,添加一些功能往往会调用不同版本的jq库,默认wordpress自带的jq库可能会造成冲突和错误。通过修改主题functions.php
可以取消加载默认的jq库,然后自定义加载自己的jq库。
注销方法:
打开主题的functions.php
文件,添加如下代码:
function my_enqueue_scripts() {
wp_deregister_script('jquery');
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts', 1 );
如果需要在后台不禁止加载,只在前台禁用,这么改:
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'jquery' );
}
add_action('init', 'my_init_method');
}
wp_deregister_script( 'l10n' );
注册自定义JQuery:
打开主题的functions.php
,添加如下代码:
/*
* wp_deregister_script():将WordPress中当前的jQuery版本禁用
* wp_register_script():注册新的CDN版本的jQuery
* wp_enqueue_script():将jQuery引入到主题或插件中
* ajax.googleapis.com 可换成国内的cdn缓存,如百度,360,新浪,阿里云,七牛(http://staticfile.org/)等等
*/
function add_scripts() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'add_scripts');
扩展主题的functions.php功能
扩展wordpress的时候,修改的最多的就是主题的functions.php
文件,扩展了多了以后,functions会越来越庞大,对维护和以后的修改来说,会大大的不方便,出了问题也很难查找和恢复。
当然,我们可以使用include_once
来加载自定义的文件,这种方法也很简便,但是对于修改量大或者修改频繁的来说,也会存在上面的维护问题。
include_once('functions-user.php');
现在说的是另一种方法,只要添加一段代码到functions.php文件里,以后只要把扩展的文件加到定义的文件夹里,就会自动加载,不同的扩展使用单独的文件,出错了可以直接删除,方便又安全。
修改方法:
打开主题的functions.php
文件,插入以下代码:
define('INC', TEMPLATEPATH.'/inc');
IncludeAll( INC );
function IncludeAll($dir){
$dir = realpath($dir);
if($dir){
$files = scandir($dir);
sort($files);
foreach($files as $file){
if($file == '.' || $file == '..'){
continue;
}elseif(preg_match('/.php$/i', $file)){
include_once $dir.'/'.$file;
}
}
}
}
以后每次为主题扩展功能的时候只要将代码保存为一个新的php文件,文件名不限,但最好是英文或数字,然后将文件放入到inc目录下即可,效果和直接将代码加到functions.php文件一样,不用一个一个的去include加载。而且一旦代码出错只要直接删除出错代码的文件即可。
WordPress tips:清理已经停用的短代码
WordPress短代码功能非常强,也很容易使用。不过如果停用后,或者更换主题后没有引入后,那在文章里就会显示出短代码,非常影响阅读。
解决方法也很简单,使用SQL替换掉短代码就可以了(替换前记得备份数据库):
UPDATE wp_post SET post_content = replace(post_content, '[shortcode]', '' ) ;
[shortcode]
换成需要替换掉的短代码