首页 » 建站技术 » WordPress » 浏览内容

WordPress真正的自动截取日志内容


2011-01-02 12:30:20 3,362 0 发表评论 字体: 作者:C.K.
标签: WordPress

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

WordPress在不使用任何的插件的情况下是能在首页截取内容,但她实现起来不是那么方便,或要自己做文章的中间加;或要修改主题中的标签。总之是不太方便吧。要怎样才能让WordPress真正的自动实现在首页截取内容(除了单篇文章的其他页面)只显示指定字节数的摘要,而不用操作其他不关文章的事呢?今天找到了下面的代码希望可以帮你实现。
以下代码作者 冰古

/**
  •  * author 冰古
  •  * link http://wanwp.com
  •  */
  • $size = 500;    // 500是显示的字节数,可按照自己的要求修改
  • $more_link_text = 'more...';    // 显示在摘要后面的提示
  •  
  • add_action('the_content', 'control_content_size');
  •  
  • function control_content_size($content) {
  •     global $size, $more_link_text;
  •     if (is_singular()) return $content;
  •     $content = strip_tags($content);
  •     $content = cut_str($content, $size);
  •     $content = '<p>' . $content . '</p><p><a href="' . get_permalink() . "\" class=\"more-link\">$more_link_text</a></p>";
  •     return $content;
  • }
  •  
  • /**
  •  * cut_str用于截断包含中文(或其他多字节?)的utf8编码的字符串
  •  * @param string $str utf8编码的字符串
  •  * @param int $len 需要截取的长度(单位是字节)
  •  */
  • function cut_str($str, $len) {
  •     if (!isset($str[$len])) {
  •         // 判断字符串长度是否已经达到需要截取的长度
  •         // 未达到时,直接输出原字符串
  •     } else {
  •         if (seems_utf8($str[$len-1])) // 判断截断字符串的最后一个字符是否是utf8编码的
  •             $str = substr($str, 0, $len); // 如果是utf8编码的,直接截断输出
  •         else { // 如果不是utf8编码的,因为utf8编码的中文是三个字节进行保存的,则判断该字符和周围字符组成的字符串是否符合utf8编码
  •             if(seems_utf8($str[$len-3].$str[$len-2].$str[$len-1]))
  •                 $str = substr($str, 0, $len-3) . $str[$len-3] . $str[$len-2] . $str[$len-1];
  •  
  •             elseif(seems_utf8($str[$len-2].$str[$len-1].$str[$len]))
  •                 $str = substr($str, 0, $len-2) . $str[$len-2].$str[$len-1].$str[$len];
  •  
  •             elseif(seems_utf8($str[$len-1].$str[$len].$str[$len+1]))
  •                 $str = substr($str, 0, $len-1) . $str[$len-1].$str[$len].$str[$len+1];
  •  
  •             else // 这个else应该不用也是可以的
  •                 $str = substr($str, 0, $len);
  •         }
  •     }
  •     return $str;
  • }

  • 代码的作用:
    1. 首先判断是否在单篇文章页面(如果是,直接返回内容,下面的操作省略);
    2. 然后把文章和WordPress自动添加的HTML标签过滤掉(如果不进行这步,可以想象页面将会大乱。);
    3. 再然后截取内容的前面n个字节(这里使用了我之前写的WordPress可用的截断中文字符的函数);
    4. 最后修饰一下,返回处理过的文章内容(怎样修饰,可以自己手动改改)。
    使用方法:
    1. 按照自己的要求修改代码中的$size和$more_link_text
    2. 将修改后的代码加入到主题的functions.php中
    或者automatic-excerpt插件到./wp-content/plugins文件夹中,然后在后台激活,当然不要忘了修改代码中的$size和$more_link_text啦。
    提示:
    1. 要在代码中修改显示的字节数和阅读全文的提示。
    2. 如果你之前使用了,在显示中可能有点不好看。是因为这个原因没有激活这个插件。

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5062 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 14144375 位访客

    广告区 Guǎng Gào