我正在工作的网站有一个包含帖子的主页,在页面的末尾有一个查看更多帖子的按钮。
当我点击该按钮时,它会将我发送到“所有帖子”。
在这一页上,我有一个问题,发帖的日期是错误的。
如果您访问:http://www.solarboatleeuwarden.nl/test/berichten/ 您可以看到,每个日期都设置为11月30日。这是2013年和2014年。
有什么问题吗?我的数据库没有问题,因为frontpage上的日期是正确的。
主页的代码如下所示:
<div id="news_content">
<div id="header_line_news">
<h2>Nieuws</h2>
</div>
<div id="news_content_inner">
<?php query_posts(\'post_type=\' . $post_types . \'&posts_per_page=3&orderby=date\'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<div class="nieuws_text">
<?php echo do_shortcode( \'[hupso]\' );?>
<div class="date_post">
<?php the_date(); ?>
</div>
<h2><?php the_title(); ?></h2>
<div class="text_holder">
<div class="img_center_index">
<?php the_post_thumbnail();?>
</div>
<p><?php the_excerpt(); ?></p>
</div>
<hr>
</div>
<?php endwhile; endif; wp_reset_postdata(); ?>
<div id="meer_berichten">
<input type="button" class="meer_berichten" onClick="parent.location=\'<?php echo $link."berichten";?>\'" value="Meer berichten">
</div>
</div>
</div>
“所有帖子”页面的代码如下所示:
<div id="content">
<div id="header_line_news">
<h2>Alle berichten</h2>
</div>
<div id="content_overons">
<?php
$years = $wpdb->get_results( "SELECT YEAR(post_date) AS year FROM wp_posts WHERE post_type = \'post\' AND post_status = \'publish\' GROUP BY year DESC" );
foreach ( $years as $year ) {
$posts_this_year = $wpdb->get_results( "SELECT ID, post_title FROM wp_posts WHERE post_type = \'post\' AND post_status = \'publish\' AND YEAR(post_date) = \'" . $year->year . "\'" );
echo \'<h2>\' . $year->year . \'</h2>\';
echo \'<ul>\';
foreach ( $posts_this_year as $post ) {
// Display the title as a hyperlinked list item
echo \'<li><a href="\' . get_permalink($post->ID) . \'">\' . $post->post_title . \'</a>\'.the_time(\'d F\').\'</li>\';
}
echo \'</ul>\';
}
?>
</div>
最合适的回答,由SO网友:Sudeep K Rana 整理而成
这可能是因为您没有在时间参数函数中提供post id。
代替the_time(\'d F\')
尝试使用echo get_the_time(\'d F\'m $post->ID)
因为当您处于循环中时,它将为您提供提供post id的灵活性。
参考号:get_the_time Codex
EDIT
我的错,我想$post变量不是由您的方法设置的。我已经根据您的需要设计了代码。
<?php
//Retrieving all the Distinct years.
$years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date) FROM $wpdb->posts ORDER BY post_date");
//Loop for printing yearwise Posts
foreach($years as $year){
$the_query = new WP_Query(array(
\'post_type\' => \'post\', //Replace your Post Type HERE. If retrieving from default posts then simple use *post* or remove element.
\'year\' =>$year
));
echo \'<h2>\'.$year.\'</h2>\';
echo \'<ul>\';
while($the_query->have_posts()):
$the_query->the_post();
echo \'<em>\'.get_the_date(\'d F\').\'</em>\';
echo \'<li><a href="\'.get_permalink( $post->ID ).\'">\'.get_the_title().\'</a></li>\';
endwhile;
wp_reset_postdata();
}
echo \'</ul>\'
?>
WP\\U查询是真实的方式。在wordpress DB中检索帖子,因为它会自动设置所有全局和局部变量。