当制作网站的首页并尝试从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 );
对于出了什么问题的任何想法都会非常感激。
答案 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);