the_date () не работает

Я использую 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; ?> 

the_date () не работал, но работали функции the_title () и другие функции. Кстати, это изменило мой запрос на the_post (), которого я не хочу. Я хочу запросить последнее видео, как я сделал выше цикла.

Кстати, раньше я использовал функцию the_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> 

См. Это специальное примечание об использовании `the_date '

СПЕЦИАЛЬНОЕ ПРИМЕЧАНИЕ. Когда на странице, опубликованной в ТОЛЬКО ДЕНЬ, есть несколько сообщений, the_date () отображает только дату первого сообщения (то есть первого экземпляра the_date ()). Чтобы повторить дату публикации сообщений, опубликованных в тот же день, вы должны использовать Template Tag the_time () или get_the_date () (начиная с 3.0) с строкой формата даты. Используйте, чтобы добавить дату, установленную в интерфейсе администратора.

  1. Вы используете query_posts который закручивает глобальные переменные
  2. Ваша эхо-функция, которая уже печатает в браузере

    • Фактически вы делаете это для всех ваших шаблонных тегов.
    • Изменить echo the_date(); to: echo get_the_date('F j, Y');
    • Удалите эхо из тегов шаблонов, которые уже печатаются в браузере, или используйте альтернативные функции, возвращающие значение.
  3. Используйте новый WP_Query или get_posts вместо query_posts

  4. Прочтите Кодекс. Он рассказывает вам, как использовать все эти функции и очень полезно 🙂

the_date() печатает дату только в том случае, если ранее не была напечатана та же дата.
Нет, это не согласуется с другими аналогичными функциями. Но так оно и работало в предке b2 / cafelog WordPress , а обратная совместимость всегда превосходит логику … 🙂

Для печати даты всегда используйте get_the_date()

 <?php echo get_the_date(); ?> 

или

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

Я думаю, что это должно выполняться в течение while( have_posts() ) условно:

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

Вам необходимо инициализировать цикл для работы определенных функций. Все эти функции перечисляют на своей странице codex, что они не будут функционировать должным образом вне цикла.

 // 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' );