the_date() not working

时间:2012-05-17 作者:zachdyer

我正在使用wordpress 3.2,我做了一个如下的查询帖子:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
然后我试着重复我这样询问的这篇文章的日期。

<?php echo the_date(); ?>
它给了我这篇文章的标题、摘录和永久链接,但没有日期。你认为问题是什么。我肯定这是件很尴尬的事。

以下是我的视频页面模板文件中的代码:

    <?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
    <h2>Recent Video</h2>
    <h3 class="date"><?php echo the_date(); ?></h3>
    <p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
    <p><a href="<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>
在这里,我尝试将查询放入循环中:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2>Recent Video</h2>
<h3 class="date"><?php echo the_date(); ?></h3>
<p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
<p><a href="<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>
<?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
<?php endif; ?>
\\u date()不起作用,但\\u title()和其他函数起作用。顺便说一下,这将我的查询更改为\\u post(),这不是我想要的。我想查询最新的视频,就像我在循环上面做的那样。

顺便说一句,我在页面的前面使用了\\u date函数,它起到了作用。这可能是问题所在吗?这是我遇到问题的代码之前的代码。

<div id="col75" class="firstcol">
    <iframe id="video" src="http://www.youtube.com/embed/videoseries?list=<?php print get_post_meta($post->ID,"playlist_id", true); ?>" width=\'560\' height=\'350\' frameborder="0"></iframe>
    <div id="col25">
        <h2><?php echo get_post_meta($post->ID,"speaker", true); ?></h2>
        <h3 class="date"><?php echo the_date(); ?></h3>

5 个回复
最合适的回答,由SO网友:Chris_O 整理而成

看到这个了吗special note about using the `the_date\'

特别注意:当在同一天发布的页面上有多篇文章时,\\u date()只显示第一篇文章的日期(即\\u date()的第一个实例)。要重复在同一天发布的帖子的日期,您应该使用模板标记the\\u time()或get\\u the\\u date()(自3.0起)以及特定于日期的格式字符串。用于添加在管理界面中设置的日期。

您正在使用query_posts 这会导致全局错误,您正在回显已打印到浏览器的功能

实际上,您正在为所有模板标记执行此操作echo the_date(); 收件人:echo get_the_date(\'F j, Y\'); WP_Queryget_posts 而不是query_posts

阅读法典。它告诉您如何使用所有这些功能,非常有用:)

SO网友:fuxia

the_date() 仅当相同日期之前未打印时才打印日期<不,这与其他类似功能不一致。但那是how it worked in WordPress’ ancestor b2/cafelog, 向后兼容性总是胜过逻辑……:)

要打印日期,请始终使用get_the_date()

<?php echo get_the_date(); ?>

<?php echo mysql2date( get_option( \'date_format\' ), $post->post_date); ?>

SO网友:Kristian

我认为这是为了在while( have_posts() ) 有条件的:

while ( have_posts() ) : the_post();
    echo \'<li>\';
    the_date();
    echo \'</li>\';
endwhile;

SO网友:mor7ifer

您需要初始化循环才能使某些函数工作。所有这些函数都在其codex页面上列出,它们在循环之外无法正常工作。

SO网友:avi
// This won\'t show date in all cases
the_date( \'F d, Y\' );

// This will show date in all cases
the_time( \'F d, Y\' );
结束