只有the_excerpt似乎返回任何东西

时间:2013-05-04 13:24:08

标签: php wordpress

当制作网站的首页并尝试从wordpress数据库中获取五个摘录时,它会产生摘录,没问题,但它完全忽略了我的the_title,get_the_id和the_date:

foreach( $post as $posts) : setup_postdata($posts);
  echo "<hr><h1>" . the_title( false, false, false ) . "</h1>";
  echo the_excerpt( ) . "<br />";
  echo "<a href='./index.php?p=" . get_the_ID( ) . "'><font color='white'>Read More...</font></a><br />";
  echo "Published on: " . the_date( false, false, false, false );
endforeach;

产生输出:

http://i.stack.imgur.com/JNkxh.png

因此,'Read More ...'指向'./index.php?p ='

我已经定义了get_posts语句,如下所示:

$args = array(
   'posts_per_page'   => 5,
   'numberposts'      => 5,
   'offset'           => 0,
   'category'         => $c,
   'order_by'         => 'post_date',
   'order'            => 'DESC',
   'include'          => '',
   'exclude'          => '',
   'meta_key'         => '',
   'meta_value'       => '',
   'post_type'        => 'post',
   'post_mime_type'   => '',
   'post_parent'      => '',
   'post_status'      => 'publish',
   'suppress_filters' => true );

$post = get_posts( $args );

对于出了什么问题的任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

我认为问题在于setup_postdata功能。

引自setup_postdata Codex Page:

  

重要提示:您必须使用全局$ post变量来传递   将详细信息发布到此函数中,否则函数如the_title()   不能正常工作......

该Codex页面的示例:

   global $post;

   // Assign your post details to $post (& not any other variable name!!!!)
   $post = $post_object;

   setup_postdata( $post );
   ...

请尝试将$post重命名为$mypost,然后使用$post中的确切setup_postdata()变量,如下所示:

foreach( $mypost as $post) : setup_postdata($post);