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>
20
10.02.2013, 21:56
4 ответа

Посмотрите это специальное замечание об использовании 'the_date'

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

  1. Вы используете query_posts который завинчивает globals
  2. Вы повторяете функцию, которая уже печатает к браузеру

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

  4. Прочитайте Кодекс. Это говорит Вам, как использовать все эти функции и очень полезно :)

53
19.02.2020, 21:56
  • 1
    get_the_date () решил мою проблему, но теперь мой sidebar.php get_the_date () повреждается. –  zachdyer 18.05.2012, 01:06
  • 2
    Другая жертва query_posts –  Chris_O 18.05.2012, 01:07
  • 3
    Хорошо это работает теперь, но у меня были к используемому теги эха. Именно поэтому это не работало в моем sidebar.php. –  zachdyer 18.05.2012, 01:22

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

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

<?php echo get_the_date(); ?>

или

<?php echo mysql2date( get_option( 'date_format' ), $post->post_date); ?>
18
19.02.2020, 21:56

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

while ( have_posts() ) : the_post();
    echo '<li>';
    the_date();
    echo '</li>';
endwhile;
0
19.02.2020, 21:56
  • 1
    Как я просто говорю что дата сообщения? Это - все, что я хочу сделать? Я только запросил одно сообщение. –  zachdyer 18.05.2012, 00:12

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

0
19.02.2020, 21:56
  • 1
    Нет это не работает, я отправил код того, что я сделал в сообщении. –  zachdyer 18.05.2012, 00:27

Теги

Похожие вопросы