继续折腾wordpress
预计所需阅读时间:6分钟
最近安装了柳城的自助友情链接插件将调用代码加在了页脚和友情链接的页面里。调用代码后发现数据库错误,原来插件只支持默认数据表表头wp_,所以如果安装时表头改的话要修改seo_friend_link.php里的wp_termst和wp_term_taxonomy,将前缀改成自己的表头。
关于链接自己也加入了360友链平台,将它的代码也加到页脚和友情链接的页面里。
将一般的百度统计代码改成异步统计代码。
将Gravatar头像缓存到本地的代码改成露兜博客修改的代码,去掉用七牛缓存的形式。
- function my_avatar( $email, $size = '50', $default = '', $alt = '') {
- $f = md5( strtolower( $email ) );
- // 以下代码将头像缓存到wp-content目录下
- $a = WP_CONTENT_URL . '/avatar/'. $f . $size . '.png';
- $e = WP_CONTENT_DIR . '/avatar/' . $f . $size . '.png';
- $d = WP_CONTENT_DIR . '/avatar/' . $f . '-d.png';
- // 如果要将头像缓存到当前主题目录下,请将3-5行代码改成:
- // $a = get_bloginfo('template_url') . '/avatar/'. $f . $size . '.png';
- // $e = get_template_directory() . '/avatar/' . $f . $size . '.png';
- // $d = get_template_directory() . '/avatar/' . $f . '-d.png';
- if($default=='')
- $default = 'http://articuly.com/avatar/avatar.jpg';
- $t = 2592000; // 缓存有效期30天, 这里单位:秒
- if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
- if ( !is_file($d) || (time() - filemtime($d)) > $t ) {
- // 验证是否有头像
- $uri = 'http://www.gravatar.com/avatar/' . $f . '?d=404';
- $headers = @get_headers($uri);
- if (!preg_match("|200|", $headers[0])) {
- // 没有头像,则新建一个空白文件作为标记
- $handle = fopen($d, 'w');
- fclose($handle);
- $a = $default;
- }
- else {
- // 有头像且不存在则更新
- $r = get_option('avatar_rating');
- $g = 'http://www.gravatar.com/avatar/'. $f. '?s='. $size. '&r=' . $r;
- copy($g, $e);
- }
- }
- else {
- $a = $default;
- }
- }
- $avatar = "<img alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
- return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
- }
主题Functions.php里面加入调用PHP文件的代码,以后将代码加入到主题apps文件夹里的PHP文件就可以自动调用。
- define('theme_apps', TEMPLATEPATH.'/apps');//在此定义存放php文件的文件夹名称
- IncludeAll( theme_apps );
- /**
- * include all PHP script
- */
- 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;
- }
- }//end foreach
- }//end if
- }
在RSS输出中加入查看全文的链接。 在主题header中调用 flush() 函数,加速WordPress博客,在</head>后面添加以下代码即可:
- <?php flush(); ?>
这行代码只是强制服务器在发送其他内容之前,先发送你的网站头(header)。通过使用 flush() 函数,浏览器就可以在等待网页其他内容的时候,下载网页头中引用的所有样式表。 保护WordPress的主题的方法之一可以隐藏登录错误。这样做的原因是,不管什么时候,你输入正确的用户名,但是输入的是错误的密码,那么系统就会提示:"错误:密码不正确。忘记密码?",这样就是直接暗示恶意用户,这个用户名是正确的,只要不断地尝试其他密码,迟早可以破解处你的登陆密码。同样,当你输入一个不存在的用户名是,会出现提示"错误:不可用的用户名",同样也可以暗示这个用户名是不可用,再换其他用户名,这样又减少了一种可能。 为了不让这样的问题发生,你需要在 functions.php 文件中添加:
- add_filter('login_errors', create_function('$a', "return null;"));
这个过滤器可以去除登陆错误时出现标准错误信息。 为防止其他文件的页面异常导致本地路径泄漏的漏洞,在/wp-includes/user.php等加入这这段PHP代码:
- <?php error_reporting(0); ?>
做这些记录也是防止自己会忘掉。