WordPress博客装修记录备忘

2011年10月22日 目录: 评论

以前一直用Z-blog的,最大好处源代码简单明了,用熟了可以随心所欲的调用,做出各种也面,对于喜欢用写字板修改编写代码的人来说再好不过,但是现在有新浪,QQ,搜狐各大门户网站开放了API 接口,独立博客的优势又变的多起来,就下决心转过来

对我来说,全地球也找不到一个能让我满意可以拿来就用的博客模板,所以只能自己动手了,改来改去,最后就是现在看到的样子…..用了才知道wordpress的强大无比,不愧是全球用户量第一的博客程序。但安装了WordPress只是相当于搬进来毛培房,功能少的可怜,甚至连个计数器都没有,好在插件的种类众多,可以说你想要有的都能找到,ZBLOG转数据也不复杂,只是伪静态在Windows实现起来比较曲折,现有的插件都不能做html的后缀,叠叠撞撞算是解决了,网上找来的代码都有漏项,要静态化,页面又想改成自己理想的效果,代价就是要面临一个接一个的出错信息和需要解决的问题,改的太多都记录一下,也许对别人有用。

WordPress 头像缓存

function my_avatar( $email, $size = '32', $default = '', $alt = '') {
  $f = md5( strtolower( $email ) );
  $a = WP_CONTENT_URL . '/avatar/'. $f . $size . '.png';
  $e = WP_CONTENT_DIR . '/avatar/' . $f . $size . '.png';
  $d = WP_CONTENT_DIR . '/avatar/' . $f . '-d.png';
  if($default=='')
    $default = 'http://blog.yipin.cn/wp-content/avatar/blank.gif';
  $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);
}

,将 get_avatar 函数替换为 my_avatar 。functions.php评论列表函数中:

1
get_avatar( $comment

改成:

1
my_avatar( $comment->comment_author_email

因为my_avatar函数只能通过Email来调取用户头像,所以以上情况,需要将第一个参数改成email地址。

WordPress 头像添加ALT属性

修改wp-includes目录下的pluggable.php文件。

找到这个函数:

function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
	if ( ! get_option('show_avatars') )
		return false;

	if ( false === $alt)
		$safe_alt = '';
        else
		$safe_alt = esc_attr( $alt );
$safe_alt ''; 替换成 $safe_alt = get_comment_author($id);
修改不到插件调用的微博头像

WordPress 置顶文章只显示标题

在title标题前加

<?php if(is_sticky()) {
?>
<h2>
<span style="color:#cc0000;">[置顶]</span>
<a class="title" href="<?php the_permalink() ?>" rel="bookmark">
<?php the_title();?>
</a></h2>
<?php }else{
?>

在文章结尾加:

<?php }
?>

调用不同的顶部模板和底部模板

需要实现的效果是,在首页也归档,网站名是H1,在文章页文章名是H1标题,H1的重要性就不用多说了
<?php include (TEMPLATEPATH . ‘/headerh1.php’); ?>

在首页不显示某分类的摘要内容

下面加:

导航栏选择显示和不显示子页面:’depth=1,2为显示

导航栏选择不显示某一页面:exclude=ID

去除WordPress 评论自动添加的<p>标签

调入评论自动添加<p></p>标签,这就意味这评论内容和其他信息不能一行显示,我想让评论里用户名紧跟着评论内容,这样看起来顺一些,用函数去除<p>这个标签

functions.php加上

remove_filter(‘comment_text’, ‘wpautop’, 30);

解决伪静态后图片不显示

RewriteRule /upload/(.*) /upload/$1 [L]
Rewrite排除图片目录

将评论第一页301定向到文章页

RewriteRule /upload/(.*) /upload/$1 [L]

 

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RedirectMatch 301 (.*)\.html/comment-page-1/  http://blog.yipin.cn$1.html


WordPress伪静态httpd.inf文件内容

看上去很多,可能是因为我的空间有两个子站有伪静态,绑了近十个域名都做了301定向,可能有冲突,网上找的代码老出错,结果加来加去就变这么多了,可能其他人要不了这么多,我现在实现的就是最理想的分类/文件.html这样的目录形式。

这里的内容我删除啦,原因见下面的文字

WordPress在Windows IIS下完美实现伪静态的解决方式

忠告所有对WordPress在Windows IIS主机下实现伪静态抱有幻想的人,最完美的方法就是换linux主机,除非你喜欢受虐,或者不是很在意你的分页,或图集,或评论,时不时出现地址错误或消不掉的index.php,或者愿意不断在httpd.ini文件里不停得修补添加,并以此为乐。
当初我也认为自己是高手,出现的小问题都难不倒我,后来发现这是无休止的,多少次都以为博客的伪静态已近完美了,但时不时的发现问题,并且永无止境,比如说翻页吧,今天解决了翻页地址错误,明天发现评论的翻页有问题,解决了以为可以完美了,多添加几张照片后,相册的翻页地址又出来讨厌的index.php,然后就是在伪静态设置后,这么目录的图片又打不开了,又要修改httpd.ini文件……就这样不停的折腾.
今天回头是岸了,我换了linux主机,以前所有的问题都不是问题了,htaccess你只要写一段代码即可,甚至我发现这段代码主机商设置了自动添加……

解决TAG中文出错

修改classes.php代码:
$pathinfo = $_SERVER['PATH_INFO'];
替换
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);

$req_uri = $_SERVER['REQUEST_URI'];
替换
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);

注:网上找的代码语法都有误,“”应为”号。新版本为classes_wp.php

WordPress登录状态移到底部

显示在底部。打开主题CSS.div#wpadminbar{top:auto;bottom:0px;}
#wpadminbar .quicklinks .menupop ul, #wpadminbar .shortlink-input {bottom:28px;}

彻底不显示。打开主题的CSS。div#wpadminbar{display:none;}

Widget Logic 常用的标记

is_home() 主页

is_single() 文章页

is_page() 页面

is_category() 文章分类页

is_tag() 文章标签页

is_archive() 归档页

is_404() 404页

is_search() 搜索结果页

WordPress评论倒叙显示

本来倒序在后台可以设置的,将最新评论显示在最前,但分页后发现一个bug,就是最新评论的一页数字显示是最后一页,不是第一页

解决办法:comment-template.php里查找“ORDER BY comment_date_gmt”后面加上“DESC”

上一段修改后,用户登录后显示正常,但登出后依然是正序显示

‘order’ => ‘ASC’ 改为 ‘ order’ => ‘DESC’ 就好了

后台依然默认顺序

后台依然默认顺序,就是最新评论在最后

中文版WordPress的显示英文月份

<?php $u_time = get_the_time(‘U’); echo date(“M j,Y”,$u_time); ?>

SQL替换内容

UPDATE wp_posts SET post_content = REPLACE( post_content, ‘b.yipin.cn’, ‘blog.yipin.cn’) ;

首页和目录不是摘要显示more标签失效:

非正常卸载,插件将the_content标签改为the_excerpt自动标签

导航栏不显示选择的页面

<?php wp_list_pages(‘title_li=0&exclude=页面ID’); ?>

加入&exclude=

不调用一个分类的连接

<?php get_links(2, ‘<li>’, ‘</li>’, ”, TRUE, ‘id’, FALSE); ?>

WordPress连接微博

网易登陆评论返回出错
插件modules 目录connect.php查找 wp_update_t_netease 改为 wp_update_t_163

搜狐微博登陆同步评论短网址出错

wp_update_t_sohu 上的

$status = wp_status(‘评论《’ . $title . ‘》: ‘ . $content, urlencode($url), 140, 1);

改为

$status = wp_status(‘评论《’ . $title . ‘》: ‘ . $content, $url, 140, 1);

去掉博客的侧栏

删除调用侧栏代码,修改CSS文件,这个将来也不会恢复了,没什么可记录的,删除了微博链接,以后可能会要,只是修改了DIV的宽度,样式表是”weibologo”

阅读全文修改代码

<span><?php the_content(‘阅读全文…’); ?></span>删除括弧里的文字

置顶文章显示置顶二字

index.php首页模板修改<?php the_title(); ?>为

<?php the_title(); if( is_sticky() ) echo ‘&nbsp;<span style=”color:red;”>置顶</span>’;
?>

修改相册图片下显示文字,不显示

/nextgen-gallery/view/gallery.php

删除 <?php foreach ( $images as $image ) : ?>下的

	<div class="picinfoooo">
<?php echo $image->description ?>
	</div>

评论嵌套的JS代码

在函数模板里关了两个自带的JS代码,新加载了两个

修改wordpress-thread-comment嵌套评论的日期显示格式为数字

wp-thread-comment.php文件,修改:

$p = str_replace('[date]', get_comment_date('F jS, Y'), $p);
将F jS, Y修改为数字表示: y/m/d
2013/3/12

$text .= ”去掉一个<p>和断尾”里的</p>

$text .= ”.$this->replytext['reply_text_before'].’<a href=”javascript:void(0)” onclick=”movecfm(event,’ . $comment->comment_ID . ‘,’ . ($deep+1) . ‘,\” . $this->encodejs(strip_tags($comment->comment_author)) . ‘\’);”>’. $this->replytext['reply_text'] . ‘</a>’.$this->replytext['reply_text_after'].”;

修改wordpress评论为倒序

wp-includes目录comment-template.php文件
ORDER BY comment_date_gmt替换成ORDER BY comment_date DESC(共两处)
修改后一个,是页面排列

删除首页加载JS代码

< ?php /* Always have wp_footer() just before the closing
* tag of your theme, or you will break many plugins, which
* generally use this hook to reference JavaScript files.
*/
wp_footer();
?>

阅读: 7,400 评论: 6 分享到:
标 签: ,
6 评论
  1. wuiniu WordPress3.3出来了,博主想升级吗,恐怕很难了吧,哈哈
    2011年12月15日 23:26
  2. 曹工 刘总这个博客做的不错
    2011年12月15日 16:00
  3. 诶咋办 这个博客主题样式超赞,学习一下
    2011年12月14日 16:09
  4. Mamati 听人忽悠,换了一次到WP,差点把人折腾死
    2011年12月7日 11:16
    • Cassie Great hammer of Thor, that is powerfully helfupl!
      2012年2月15日 20:17
  5. 小漾 正面临同样的问题,做个记号
    2011年11月29日 19:31
6 评论
该文章超过限期,评论已关闭