Wordpress:the_excerpt不起作用

时间:2013-05-13 19:12:17

标签: wordpress wordpress-plugin

我最近更新了wordpress,现在所有内容都输出到此模块,“the_excerpt()”除外

<?php

function blog_feed_content(){
  ?>
  <ul id="blog_list" class="jscroll">
            <?php
            global $post;
            $args = array('category' => 4 );
            $myposts = get_posts( $args );
            foreach( $myposts as $post ) :  setup_postdata($post); ?>
                <li class="post clearfix" id="post-<?php the_ID(); ?>">
                    <div class="post-content clearfix">
                        <h2 class="post-title"><?php the_title(); ?></h2>
                        <div class="post-date"><?php the_time('F Y') ?></div>
                        <div class="post-text">
                             <?php the_excerpt(); ?> 
                        </div>
                    </div>
                </li>
            <?php endforeach; ?>

    </ul>


  <?php
}

function widget_blog_feed($args){
  extract($args);
  echo $before_widget;
  echo $before_title;?>Blog Feed<?php echo $after_title;
  blog_feed_content();
  echo $after_widget;
}

function init_blog_feed() {
  register_sidebar_widget(__('blog_widget'), 'widget_blog_feed');
}
add_action("plugins_loaded", "init_blog_feed");
?>

为什么它不输出这一个内容?

你真是太棒了。感谢。

2 个答案:

答案 0 :(得分:1)

setup_postdata与使用WP_Query的普通the_post()并不完全相同,因此并非所有模板标记都能按照预期的方式显示帖子。

您应该重写代码以使用自定义WP_Query和传统循环,而不是使用foreach来迭代帖子对象。

类似的东西:

$myposts = new WP_Query('cat=4');
if( $myposts->have_posts() ) : while( $myposts->have_posts() ) : $myposts->the_post(); ?>
    <li class="post clearfix" id="post-<?php the_ID(); ?>">
        <div class="post-content clearfix">
            <h2 class="post-title"><?php the_title(); ?></h2>
            <div class="post-date"><?php the_time('F Y') ?></div>
            <div class="post-text">
                 <?php the_excerpt(); ?> 
            </div>
        </div>
   </li>
<?php endwhile;
wp_reset_query;
endif; ?>

这应该指向正确的方向。如果您坚持使用foreachget_posts方法,则可以始终使用一些简单的字符串函数(即substr()来截断post_content属性的$post属性。 <?php the_content(); ?>对象,例如将<?php echo substr($post->the_content, 0, 80); // displays first 80 chars of post ?> 行替换为:

{{1}}

答案 1 :(得分:0)

你应该定义 id。

<?php echo get_the_excerpt($post->ID); ?