如何显示一篇帖子的内容,但如果超过字数限制,是否还原为摘录?

时间:2012-06-25 作者:Danny

所以我正在为我的一个客户开发一个网站。我们有大约50多篇文章被归入一个名为“文章”的类别。我创建了一个自定义页面模板,该模板有一个自定义查询来显示此页面上项目符号列表中的所有帖子,如果单击它,您可以直接转到帖子阅读更多内容或直接打开PDF。我遇到的一个障碍是,我们有两篇特定的文章,而不仅仅是PDF,它们大约有3-6段。因此,我想知道是否有可能像现在这样显示列表中的所有帖子,如果超过100个字符,则返回到我们专门为这些帖子制作的摘录。

当前我的代码如下所示:

                <?php
            //for each child of category 16 (articles), show title of posts
            $cat_args=array(\'child_of\' => 16, \'orderby\' => \'name\', \'order\' => \'DESC\');
            $categories=get_categories($cat_args);
              foreach($categories as $category) {
                $args=array(\'showposts\' => -1, \'category__in\' => array($category->term_id), \'caller_get_posts\'=>1);
                $posts=get_posts($args);
                  if ($posts) {
                    echo \'<h3><a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name.\'</a></h3> \';
                    foreach($posts as $post) {
                      setup_postdata($post); ?>
                        <!--<li><?php the_title_attribute(); ?></li>-->
                        <ul>
                            <li><?php echo get_the_content(); ?></li>
                        </ul>
                      <?php
                    } // foreach($posts
                  } // if ($posts
                } // foreach($categories
            ?>
谢谢大家!好几天来我一直在为这件事烦恼。

2 个回复
SO网友:Chris_O

替换_content();带有echo wpse\\u limit\\u content();

   function wpse_limit_content() {
   $content = $post->post_content;
   $MAX_LENGTH = 100;

    if ( strlen(  $content )  <= $MAX_LENGTH )
        return apply_filters(\'the_content\', $content );

    $s2  = substr( $content, 0, $MAX_LENGTH  );
    $s3  = preg_split( "/\\s+(?=\\S*+$)/", $s2 );
    $s4  = $s3[0];

        return apply_filters( \'the_excerpt\', $s4 );

  }
如果字符串太长,它会对其进行修剪,以获得一个100个字符的摘录。

您也可以这样做:

$content = $post->post_content;

if (strlen( $content > 100 ) {
    the_excerpt();
} else {
   the_content();

SO网友:fdsa

你可以直接打印出来the_excerptset the excerpt length 达到你想要的极限。

结束

相关推荐

Delist entries in the_loop

我正在尝试向我的WordPress网络添加一个退市功能。被除名的帖子不会出现在帖子列表中,但如果直接访问,仍然可以看到。我编写了一个插件,帮助编辑在作者和帖子上删除带有自定义元值的条目。因此,在公开列表中显示每篇文章之前,我需要检查两个元数据:delist-post post 元价值和delist-author user 元值。我想注册一个pre_get_posts 限制返回的筛选器get_posts() 通过设置查询的meta_query 所有物是否可以使用POST检查用户元值meta_query? 如