Apakah saya perlu menggunakan Loop pada halaman?

8

Saya sedang menulis tema WordPress pertama saya dan memiliki pertanyaan tentang penggunaan The Loop di templat halaman. Template halaman yang saya lihat pada dasarnya mengikuti pola yang sama (contoh dari Twenty Twelve):

<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>

Tetapi halaman hanya akan memiliki satu posting yang terkait dengannya sehingga iterasi melalui posting tampaknya tidak perlu. Template halaman saya lebih mudah dibaca dan tampaknya berfungsi dengan baik:

<?php
the_post();
the_title('<h1>', '</h1>');
the_content();
?>

Apakah ini praktik yang baik? Apakah ada kerugian?

Ide Jamie
sumber

Jawaban:

5

Menurut Panduan Tema , loop penuh harus digunakan, bahkan pada template tunggal.

Loop penuh harus digunakan di semua template. Memanggil the_post()dalam templat suka single.phpatau page.phptidak cukup.

Jadi ya, ini adalah praktik terbaik untuk menggunakan loop penuh.

Dave Romsey
sumber
9

Satu-satunya masalah potensial (edit: fungsional) yang saya lihat adalah bahwa loop_endtindakan tidak akan dipanggil jika Anda tidak menelepon have_posts()setelah yang terakhir the_post(), jadi apa pun yang terkait dengan tindakan itu tidak akan berjalan.

Dalam praktiknya, saya telah melakukan hal itu dalam tema klien yang dipesan lebih dahulu dan tidak pernah mengalami masalah, tetapi tergantung pada plugin apa yang dapat digunakan dan apakah mereka menghubungkan sesuatu atau tidak loop_end.

Milo
sumber
Menurut Panduan Tema , loop penuh harus digunakan, bahkan pada template tunggal. "Loop penuh harus digunakan di semua templat. Hanya memanggil the_post () dalam templat seperti single.php atau page.php tidak cukup." Jadi ya, ini adalah praktik terbaik untuk menggunakan loop penuh.
Dave Romsey
Anda mungkin harus menambahkan itu sebagai jawaban. itu perlu jika Anda ingin tema Anda diterima dan didistribusikan di WP.com atau org.
Milo
Baiklah, terima kasih. Aku akan. Saya pikir Anda menutupinya dengan jawaban Anda, jadi saya pikir saya hanya akan menambahkannya dengan berita gembira itu. Saya tidak pernah memikirkan titik tindakan loop_end yang Anda ajukan. Panggilan bagus di sana.
Dave Romsey
Pertanyaan bagus, saya tidak setuju dengan dokumentasi, loop adalah suatu keharusan di semua file template, tapi saya rasa kedua jawaban tidak menjelaskan MENGAPA. Khususnya mengapa perlu menjalankan the_post () di dalam page.php karena file ini tidak seharusnya menampilkan tulisan sama sekali!
GyRo
1
@GyRo halaman adalah jenis posting. Ini diperlukan karena mengatur data yang perlu agar tag templat berfungsi dengan baik.
Milo