我在WordPress中遇到了一些PHP代码问题而我认为解决方案与循环有关。我已经看过http://codex.wordpress.org/The_Loop和http://codex.wordpress.org/The_Loop_in_Action,但这已经超出了我的想象,而且我已经浪费了整个星期六。
所以问题是我在我网站的主页上有一个小部件。它显示了接下来发生的5个事件的标题以及它们的链接。我想要做的是同时显示上次修改事件(它们就像博客文章)的日期。
问题是我的代码一直返回错误的日期。我今天修改了我的帖子,即12月13日,它一直在输出12月11日。我不知道从哪里得到那个日期。我尝试使用 the_modified_date()和 get_the_modified_date(),结果相同。我猜这个函数不知道从哪个帖子中提取日期,它与循环有关。
所以我一直在搞乱小部件的代码。这是我所拥有的简化版本:
foreach ($events as $event) {
if ( $event['event_date'] >= $site_date ) {
$lastMod = get_the_modified_date($phpformatstring);
echo $lastMod;
echo '<br><a href="' . get_permalink($event['ID']) . '" >' . get_the_title($event['ID']) . '</a>';
if ( !empty( $widget_display_count ) ) {
$counter++;
if ( $counter == $widget_display_count )
break;
}
}
}
我真的希望有人可以帮助我。如果您想使用我正在使用的小部件进行尝试,可以使用名为Events Listing Widget
的小部件答案 0 :(得分:1)
get_the_modified_date()
需要$post
全局。该插件正在迭代wpdb查询的结果,所以从技术上讲,没有WP循环。
global $post; $post = get_post( $event['ID'] ); setup_postdata( $post );
调用之前get_the_modified_date()
之类的内容应该有效。不要忘记在wp_reset_postdata();
答案 1 :(得分:0)
get_the_modified_date()
对循环中的当前帖子起作用。
该函数使用get_post_modified_time()
来获取接受帖子ID的日期。
替换:
$lastMod = get_the_modified_date($phpformatstring);
使用:
$lastMod = get_post_modified_time( $phpformatstring, null, $event['ID'], true );