限制文章摘录的大小

时间:2011-10-27 作者:user8503

我正在使用此筛选器进行自定义摘录

<?php echo excerpt(90); ?>

http://bavotasan.com/2009/limiting-the-number-of-words-in-your-excerpt-or-content-in-wordpress/

但此过滤器在显示默认55个单词的第一篇特色帖子中不起作用

否则就没问题了

<?php 
$count = 1;
if (have_posts()) : while (have_posts()) : the_post(); if($count == 1) : ?>
<div id="featurd_post">
<div class="ftrd_image">
<?php woo_get_image(\'image\',455,245,\' \'.$GLOBALS[\'align\']); ?>   </div>
<div class="fix"></div>
<div class="ftrd_entry">
<h2 class="title">
<a href="<?php the_permalink() ?>" rel="bookmark" title=""><?php  the_title(); ?></a></h2>
<p class="fetrd_entry">**<?php echo excerpt(90); ?>**</p>
<a href="#" title="" class="read_more">(<?php _e(\'&#2310;&#2327;&#2375; 
&#2346;&#2338;&#2375; \', \'shreshthbharat\'); ?>)</a>
</div></div>     
<?php else : ?>

<div id="post">
<div class="post_image">
<?php woo_get_image(\'image\',455,245,\' \'.$GLOBALS[\'align\']); ?>   </div>
<div class="fix"></div>
<div class="post_entry">
<h2 class="title">
<a href="<?php the_permalink() ?>" rel="bookmark" title=""><?php  the_title(); ?></a></h2>
<p class="fetrd_entry">**<?php echo excerpt(90); ?>**</p>
<a href="#" title="" class="read_more">(<?php _e(\'&#2310;&#2327;&#2375; 
&#2346;&#2338;&#2375; \', \'shreshthbharat\'); ?>)</a>
</div></div>
请引导。

3 个回复
SO网友:Sagive

试着用一种完全不同的方式来处理这个问题,并将此代码应用到您的函数中。php

// Variable excerpt length.
function dynamic_excerpt($length) { // Variable excerpt length. Length is set in characters
global $post;
$text = $post->post_excerpt;
if ( \'\' == $text ) {
$text = get_the_content(\'\');
$text = apply_filters(\'the_content\', $text);
$text = str_replace(\']]>\', \']]>\', $text);
}
$text = strip_shortcodes($text); // optional, recommended
$text = strip_tags($text); // use \' $text = strip_tags($text,\'<p><a>\'); \' if you want to keep some tags
$text = mb_substr($text,0,$length).\' ...\';
echo $text; // Use this is if you want a unformatted text block
//echo apply_filters(\'the_excerpt\',$text); // Use this if you want to keep line breaks
}
现在,如果您想在主题中摘录,请使用以下行:

<?php dynamic_excerpt(125); ?>
125是本例中的字符长度。。。

因为它使用“mb\\U substr”its also great 当使用希伯来语/阿拉伯语/汉语或任何其他字符计数不同的语言时。。所以都是最好的解决方案。

希望这有帮助。。。

SO网友:Andy Adams

在玩完代码之后,我没有发现extract()函数有任何错误。

我猜你的问题在于你的文章摘要-你确定你已经为你的“特色”文章设置了超过90个字符的摘要吗?如果您尚未设置摘录,WordPress将自动为您创建一个。

SO网友:ezkay

如果有用的话,这就是我正在使用的:您可以按需要的方式编辑它。

/** 
 * Sets the post excerpt length to number of words, except for some pages.
 *
 * @param int $length The current excerpt length.
 * @return int The new excerpt length in words.
--------------------------------------------------------------------- */
    function abc_excerpt_length($length) {
      // startpage
      if (is_home()) {
        return 5;
      }
      // search result page
      if (is_search()) {
        return 10;
      }
      // in the feed
      if (is_feed()) {
        return 20;
      }
      // on every other page
      return 40;
    }

    add_filter(\'excerpt_length\', \'abc_excerpt_length\');

结束

相关推荐

如何调用带有标记的_excerpt()或作为摘录的_content()?

是否可以调用标记完整的\\u摘录()?我想创建一个特定类别中我的帖子的摘录列表,但我也希望从帖子内容中保留链接和格式。我目前使用的是\\u extract(),它在其他方面工作正常,但是标记被去掉了。我找不到可以放置在\\u摘录()上的筛选器来执行此操作,因此如果不这样做,是否可以筛选\\u内容()以提取前100个单词,并在末尾添加标记和阅读更多链接?