“所有帖子”页面上的日期错误

时间:2014-03-05 作者:Kees Sonnema

我正在工作的网站有一个包含帖子的主页,在页面的末尾有一个查看更多帖子的按钮。

当我点击该按钮时,它会将我发送到“所有帖子”。

在这一页上,我有一个问题,发帖的日期是错误的。

如果您访问: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>

1 个回复
最合适的回答,由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中检索帖子,因为它会自动设置所有全局和局部变量。

结束

相关推荐

在表单中使用UPDATE_USER_META设置和获取自定义元

我有一个模板,用户可以通过我网站前端的表单设置一些自定义元值。我通过函数中的函数调用此表单。php文件。当前,当填写文本输入并点击提交时,这些值会像预期的那样保存到数据库中,但是直到我在浏览器上点击刷新,我才在页面上看到提交的值。但当我这样做时,我会看到用户设置的值,但这些值会从数据库中删除(在浏览器上再次点击刷新将默认返回到未设置值)。不确定此设置是否正确?以下是我的模板中的代码:<h2>Your Values</h2> Value 1: <?php if(!$ne