the_date () không hoạt động


20

Tôi đang sử dụng wordpress 3.2 và tôi đã làm một bài truy vấn như thế này:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>

Sau đó, tôi cố gắng lặp lại ngày của bài đăng này, tôi đã yêu cầu như thế này.

<?php echo the_date(); ?>

Nó cho tôi tiêu đề của bài viết và đoạn trích và permalink nhưng không có ngày. Bạn nghĩ vấn đề là gì. Tôi chắc chắn đó là một cái gì đó khá xấu hổ.

Đây là mã trong tệp mẫu của tôi cho trang video:

    <?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>

Ở đây tôi cố gắng đặt truy vấn trong một vòng lặ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 () không hoạt động nhưng the_title () và các hàm khác hoạt động. Bằng cách này, điều này đã thay đổi truy vấn của tôi thành the_post () không phải là điều tôi muốn. Tôi muốn truy vấn video mới nhất giống như tôi đã làm ở trên vòng lặp.

Bằng cách này, tôi đã sử dụng hàm_date trước đó trong trang và nó đã hoạt động. Có thể đó là vấn đề? Đây là nó trước mã mà tôi gặp vấn đề.

<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>

Câu trả lời:


51

Xem ghi chú đặc biệt này về việc sử dụng 'the_date'

LƯU Ý ĐẶC BIỆT: Khi có nhiều bài đăng trên một trang được xuất bản dưới CÙNG NGÀY, the_date () chỉ hiển thị ngày cho bài đăng đầu tiên (nghĩa là phiên bản đầu tiên của the_date ()). Để lặp lại ngày cho các bài đăng được xuất bản trong cùng một ngày, bạn nên sử dụng Thẻ mẫu the_time () hoặc get_the_date () (kể từ 3.0) với chuỗi định dạng dành riêng cho ngày. Sử dụng để thêm ngày được đặt trong giao diện quản trị.

  1. Bạn đang sử dụng query_postsvít nào trên toàn cầu
  2. Bạn đang lặp lại một chức năng đã in ra trình duyệt

    • Bạn đang thực sự làm điều đó cho tất cả các thẻ mẫu của bạn.
    • Thay đổi echo the_date();thành:echo get_the_date('F j, Y');
    • Xóa tiếng vang khỏi các thẻ mẫu đã in ra trình duyệt hoặc sử dụng các hàm thay thế trả về giá trị.
  3. Sử dụng mới WP_Queryhoặc get_poststhay vìquery_posts

  4. Đọc Codex. Nó cho bạn biết làm thế nào để sử dụng tất cả các chức năng này và rất hữu ích :)


1
get_the_date () đã khắc phục sự cố của tôi nhưng bây giờ sidebar.php của tôi get_the_date () bị hỏng.
zachdyer

1
Một nạn nhân khác củaquery_posts
Chris_O

Được rồi, nó đang hoạt động nhưng tôi phải sử dụng các thẻ echo. Đó là lý do tại sao nó không hoạt động trong sidebar.php của tôi.
zachdyer

17

the_date()chỉ in ngày nếu cùng ngày không được in .
Không, điều đó không phù hợp với các chức năng tương tự khác. Nhưng đó là cách nó hoạt động trong tổ tiên b2 / cafelog của WordPress và khả năng tương thích ngược luôn vượt qua logic Logic :)

Để in ngày luôn sử dụng get_the_date()

<?php echo get_the_date(); ?>

hoặc là

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

NOOOOOOOOOOOOOOOOOOOOOO. Bây giờ thanh bên của tôi get_the_date bị hỏng. Chuyện gì xảy ra ở đó?
zachdyer

1
Xem câu trả lời của Cris_O và không sử dụngquery_posts() . :)
fuxia

Sử dụng query_posts đang phá vỡ toàn cầu của bạn. Xem câu trả lời của tôi dưới đây.
Chris_O

0

Tôi nghĩ rằng nó có nghĩa là được chạy trong while( have_posts() )điều kiện:

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

Làm thế nào để tôi chỉ nói ngày của bài viết? Đó là tất cả những gì tôi muốn làm? Tôi chỉ truy vấn một bài.
zachdyer

0

Bạn cần khởi tạo vòng lặp để các chức năng nhất định hoạt động. Tất cả các chức năng này liệt kê, trên trang codex của họ, rằng chúng sẽ không hoạt động đúng bên ngoài vòng lặp.


Không, nó không hoạt động tôi đã đăng mã của những gì tôi đã làm trong bài viết.
zachdyer

-1
// 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' );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.