Archive for the 'Wordpress' Category

截取字符串乱码解决

Posted by Danfi on 2011-04-21 3 条评论

最近主机挂了,也懒得等他们解决直接换成了国内主机,毕竟自己有备案,想不通以前用国外主机是为了什么。今天把

程序转移到新的主机,完成后发现注册信息,最新评论,最新文章处于乱码,都是截取字符串造成的。求助于万能的搜

索引擎,找了几篇文章,最后筛选出相对简便的方法,不用做太大的改动,只是在function内添加一个方法,然后替换

原来截取字符串的function。起初我使用的是mb_strimwidth,然后改动了下文中的代码,因为我把用户名也截取了,

有些人的用户名真的比较长。详情可查看PHP文章截断函数mb_strimwidth常见用法及乱码解决方法一文。

阅读全文…

让WORDPRESS小工具-最新评论-显示指定页评论或留言

Posted by Danfi on 2010-08-12 11 条评论

由于本人弄了个微博页来发表些技术论坛的注册信息,但是只在该页显示,于是琢磨着把它显示到最新评论上,正好我使用

的是主题自带的,而小工具内也有,所以就准备修改其为之服务。为了显示指定页就得找到文章的id,可以到数据库内寻找,

最方便的是在后台找到该页,在链接的最后找到post=***,***就是该页ID。然后在wp-includes里编辑

default-widgets.php,先寻找最新评论那块,可搜索 Recent_Comments widget class,这是注释,然后在数据库查找的

指令内添加AND comment_post_ID = ‘***’,***就是刚才找的页面ID,该句可放在AND post_status = ‘publish’的前后

之后修改

  1. <?php
  2. if ( $comments ) : foreach ( (array) $comments as $comment) :
  3. echo  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
  4. endforeach; endif;?>

的内容,就是显示的样式。默认的样式比较不好看,是“作者在某某上发表了评论”类似这种类型,由于我只想显示评论再

加上链接,于是就改成了

  1. <?php
  2. if ( $comments ) : foreach ( (array) $comments as $comment) :
  3. echo  "\n<li>" . "<a href=\"" . 'http://www.danfi.cn/miniblog' .
  4. "#comment-" . $comment->comment_ID . "\">". mb_strimwidth(strip_tags($comment->comment_content),0,40)
  5. ."</a></li>";
  6. endforeach; endif;?>

如此就只显示评论了。

wordpress留言分页

Posted by Danfi on 2010-08-11 7 条评论

之前给自己的首页文章改成了现在的分页,默认的分页翻起来挺不便的。然后想用同样的方法把自己的微博页也改成类似

分页,由于该页经常发一些论坛注册信息,所以写的条数比较多,不得而为之。可是用同样的方法,虽然改了函数,运行

没问题,就是当前页显示错误,一直停在第一页。今天又参照wp-commentnavi插件的源码,找关键的函数,把

  1. $paged = intval(get_query_var('cpage'));

加进代码,结果测试成功~现在代码变为

阅读全文…

修改wordpress文章评论标题显示长度

Posted by Danfi on 2010-07-31 4 条评论

原本博客右边的最新文章和最新评论不限字数,所以带来一个问题:当标题过长或者评论过长,就会换行显示,如此

一个标题或者评论占了两行,不太美观。于是搜索限制字数显示的文章。在 wordpress首页显示摘要的几种方法

找到的方法,同样适用于我现在的情况,把以下代码

  1. function dm_strimwidth($str ,$start , $width ,$trimmarker ){
  2. $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
  3. return $output.$trimmarker;
  4. }

复制到functions.php中,然后在用到标题及评论的页面内修改,由于主题不用,使用方法也不用。拿我的举例吧。

代码在plugins.php中

  1. foreach ($comments as $comment) {
  2.  
  3. $output .= "\n\t
  4. <li><span>" . $comment-&gt;comment_author . ':</span> <a title="on ' . $comment-&gt;post_title . '" href="' . get_permalink($comment-&gt;ID) . '#comment-' . $comment-&gt;comment_ID  . '">' . strip_tags($comment-&gt;com_excerpt) . '...</a></li>
  5. ';
  6. }

在右边输出评论内容然后我修改为

  1. foreach ($comments as $comment) {
  2. $output .= "\n\t
  3. <li><span>" . $comment-&gt;comment_author . ':</span> <a title="on ' . $comment-&gt;post_title . '" href="' . get_permalink($comment-&gt;ID) . '#comment-' . $comment-&gt;comment_ID  . '">' . mb_strimwidth(strip_tags($comment-&gt;com_excerpt),0,36) . '...</a></li>
  4. ';
  5. }

也就是添加了mb_strimwidth( ,0,36),36可以自行调整。

wordpress个性化友情链接

Posted by Danfi on 2010-07-13 7 条评论

今天终于又搞起了wp,想起之前ilMilk’s Blog的链接很好看就尝试修改下,于是本着中文站点用百度,英文站点用 谷歌的

原则百度一下,发现一篇文章个性化 Wordpress 友情链接页面,参考着做了下,可惜本人css不怎么会,只能用火狐的

firebug插件一点一点的改,直到效果满意。由于主题比较特殊,页面需要标题,不然友情链接几个字会挤到上面去,而

且不整齐,于是又把

  1. <?php the_content(); ?>;

添加到了

  1. <?php wp_list_bookmarks('categorize=1&
  2. category_orderby=id&before=<li class = "entry">&after=</li>&show_images=0&
  3. show_description=1&orderby=name&title_before=<h3>&title_after=</h3>'); ?>

之前,文中的方法是把它覆盖掉了。感谢两位博主,我又偷学了~

wordpress时间显示格式

Posted by Danfi on 2010-03-31 添加评论

使用不同的时间函数可以改变格式:
1.the_date_xml()函数
调用语句:

  1. <?php the_date_xml(); ?>

显示格式为:YYYY-MM-DD
例子:2010-03-31

2.the_time()函数
调用语句格式:

  1. <?php the_time( $d ); ?>

例子1:

  1. <?php the_time('g:i a'); ?>

显示格式为:10:36 下午(英文版下显示不同,系统会自动翻译,下面如同

例子2:

  1. <?php the_time('G:i'); ?>

显示格式为: 17:52

例子3:

  1. <?php the_time('F j, Y'); ?>

显示格式为:二月 2, 2010

例子4:

  1. <?php the_time('F j, Y'); ?> at <?php the_time('g:i a'); ?>

显示格式为:二月 17, 2010 at 7:19 下午

阅读全文…