the_date () tidak berfungsi


20

Saya menggunakan wordpress 3.2 dan saya melakukan posting permintaan seperti ini:

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

Lalu saya mencoba untuk menggemakan tanggal posting ini saya bertanya seperti ini.

<?php echo the_date(); ?>

Ini memberi saya judul posting dan kutipan serta permalink tetapi tidak ada tanggal. Menurut Anda apa masalahnya. Saya yakin itu sesuatu yang sangat memalukan.

Berikut adalah kode dalam file templat saya untuk halaman 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>

Di sini saya mencoba untuk menempatkan kueri dalam satu lingkaran:

<?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 () tidak berfungsi tetapi the_title () dan fungsi lainnya berfungsi. By the way ini mengubah permintaan saya ke the_post () yang bukan apa yang saya inginkan. Saya ingin menanyakan video terbaru seperti yang saya lakukan di atas loop.

Omong-omong saya menggunakan fungsi the_date sebelumnya di halaman dan itu berhasil. Mungkinkah itu masalahnya? Ini dia sebelum kode yang saya punya masalah dengan.

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

Jawaban:


51

Lihat catatan khusus ini tentang penggunaan `the_date '

CATATAN KHUSUS: Ketika ada beberapa posting pada halaman yang diterbitkan di bawah HARI SAMA, the_date () hanya menampilkan tanggal untuk posting pertama (yaitu, instance pertama the_date ()). Untuk mengulangi tanggal posting yang diterbitkan pada hari yang sama, Anda harus menggunakan Tag Templat the_time () atau get_the_date () (sejak 3.0) dengan string format khusus tanggal. Gunakan untuk menambahkan tanggal yang diatur dalam antarmuka admin.

  1. Anda menggunakan query_postsyang mengacaukan global
  2. Anda menggemakan fungsi yang sudah dicetak ke browser

    • Anda sebenarnya melakukan itu untuk semua tag templat Anda.
    • Ubah echo the_date();ke:echo get_the_date('F j, Y');
    • Hapus gema dari tag templat Anda yang sudah dicetak ke browser atau gunakan fungsi alternatif yang mengembalikan nilai.
  3. Gunakan yang baru WP_Queryatau get_postsbukanquery_posts

  4. Baca Codex. Ini memberitahu Anda cara menggunakan semua fungsi ini dan sangat membantu :)


1
get_the_date () memperbaiki masalah saya tetapi sekarang sidebar.php get_the_date () saya rusak.
zachdyer

1
Korban lain dariquery_posts
Chris_O

Oke itu berfungsi sekarang tetapi saya harus menggunakan tag gema. Itu sebabnya itu tidak berfungsi di sidebar.php saya.
zachdyer

17

the_date()hanya mencetak tanggal jika tanggal yang sama tidak dicetak sebelumnya .
Tidak, itu tidak konsisten dengan fungsi serupa lainnya. Tapi begitulah cara kerjanya di leluhur WordPress ' b2 / cafelog , dan kompatibilitas selalu mengalahkan logika ... :)

Untuk mencetak tanggal selalu gunakan get_the_date()

<?php echo get_the_date(); ?>

atau

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

Tidaaaaaaaaaaaak. Sekarang bar samping saya get_the_date rusak. Apa yang terjadi di sana?
zachdyer

1
Lihat jawaban Cris_O dan jangan gunakanquery_posts() . :)
fuxia

Menggunakan query_posts Anda yang melanggar global Anda. Lihat jawaban saya di bawah ini.
Chris_O

0

Saya pikir itu dimaksudkan untuk dijalankan dalam while( have_posts() )kondisi:

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

Bagaimana saya bisa mengatakan tanggal posting? Itu yang ingin saya lakukan? Saya hanya menanyakan satu posting.
zachdyer

0

Anda perlu menginisialisasi loop agar fungsi tertentu dapat berfungsi. Semua fungsi ini mendaftar, pada halaman codex mereka, bahwa mereka tidak akan berfungsi dengan baik di luar loop.


Tidak itu tidak berfungsi, saya memposting kode dari apa yang saya lakukan di posting.
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' );
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.