我使用以下代码在Wordpress中获取帖子信息。我在网上找到了这个代码,并添加了两个变量“date”和“author”。但是,这些目前不按要求/预期工作。
对于“日期”,它返回完整的日期/时间戳(即2017-03-08 15:12:39),而不是使用get_the_date()时检索到的格式良好的日期; (即2017年3月8日)。我可以调整我的标记来格式化日期吗?
对于“作者”,什么都没有被退回?
提前致谢。
$postData = get_posts($postParameters);
$posts = array();
foreach($postData as $post) {
$post = array(
"id" => $post->ID,
"title" => $post->post_title,
"excerpt" => $post->post_excerpt,
"date" => $post->post_date,
"author" => $post->post_author,
"slug" => $post->slug,
"image" => array("url" => get_the_post_thumbnail_url($post->ID)),
"link" => get_permalink($post->ID),
"category" => get_the_category($post->ID)[0]->name
);
array_push($posts, $post);
}
答案 0 :(得分:1)
这是因为您正在检索对象,在收到数据后需要按照您需要的方式对其进行格式化。例如:
这将检索带有帖子信息的对象:
<?php $postData = get_posts($postParameters);?>
现在,从对象中,您收到的日期为:
[post_date] => 2016-09-20 15:42:55
因此,要将其显示为一个不错的日期,您需要将其格式化为:
<?php echo '<p>'.get_the_date( 'F, j Y', $postData[0]->ID ).'</p>'; ?>
对于作者,该对象返回作者ID,这是一个数字:
[post_author] => 1
现在使用以下代码可以显示作者显示名称:
<?php echo '<p>'.the_author_meta( 'display_name', $postData[0]->post_author ).'</p>'; ?>
我希望它可以帮到你! 享受!