10. Templat Single Post, Post Attachment, 404

Tutorial ke-10 ini membahas templat untuk single posts, post attachment, dan laman error 404 (page not found).

Induk atau Mbahnya Templat WordPress

Struktur file  single.php (dan nyaris semua file templat yang kita buat sebelumnya dan nanti) secara prinsip sama seperti  index.php. Skema berikut memperlihatkan posisi single.php dalam hirarkki theme WordPress.

wp-index-main-template

File  single.php adalah templat untuk laman post atau artikel. Kalau belum membuat single.php, silahkan buat file kosong single.php dan salin kode berikut sebagai kode single.php :

Perhatikan template diatas, bangunan utama atau blok template single.php sebenarnya serupa dengan index.php. Sekarang bagaimana cara kita memanggil fungsi get_template_part()  lagi untuk single.php? Caranya dengan susunan kode berikut.

Baris kode diatas berarti bahwa theme akan mencari file templat bernama  content-single.php untuk mengisi Loop, jika tidak ada ia akan mengambil file default yaitu content.php. Kita akan bahas lebih jauh file  content-single.php , sebelumnya kita cari tahu dulu beberapa hal penting dengan file templat yang bernama single.php.

Pertamax, karena ini file single post atau templat  untuk menampilkan isi dinamis, kita harus pertimbangkan juga metadata dari suatu tulisan yaitu komentar yang diwakili oleh fungsi comments_template(). Perhatikan di file  single.php  fungsi ini dipanggil dengan suatu kondisi yang diatur melalui pengaturan dasar WordPress di sisi administrasi. 

Kondisi yang diperlukan untuk menampilkan komentar : templat komentar akan diambil jika komentar dibuka untuk umum dan jika sedikitnya ada satu komentar. Dalam bentuk kode dituliskan sbb:

Karena kita akan memisahkan komentar dengan trackbacks di bagian file  comments.php, kita akan memanggil  comments_template() dengan kondisi : comments_template( '', true );. Jadi jika kondisi A atau B dipenuhi baru templat komentar akan ditampilkan.

Templat Content-Single.php

Ketika akan menampilkan isi atau content single post di file single.php, ada perbedaan dengan format yang tampil di laman index atau laman depan. Tentu saja karena laman index menampilkan semua post atau tulisan terbaru dengan kondisi yang diatus di laman administrasi. Sedangkan laman single adalah laman penampilan seluruh isi post atau tulisan. Untuk itu diperlukan satu file templat baru untuk menampilkan isi atau content di single post loop. File itu dinamai  content-single.php, buat file ini dan salin kode berikut.

 

Kalau diperhatikan susunan kodenya memang nyaris serupa dengan file content.php, dengan beberapa perbedaan yang akan kita diskusikan.

Single Post Content

Tidak seperti content.php, di file content-single.php, kita tak punya kondisional untuk menampilkan ringkasan atau excerpt atau ringkasan hasil pencarian – tentu saja karena kita ada di templat untuk menampilkan isi tulisan dengan lengkap sebagai sebuah artikel.

(gambar isi content-single.php)

Single Post Meta

Meta data untuk  bagian isi identik dengan meta data yang ditampilkan di templat  content.php.  Perbedaannya adalah kita tak perlu memeriksa apakah ini laman Page atau bukan.

Catat juga kalau pranala ke laman komentar tidak dimasukkan karena kita telah mempunyai comments_template() di  single.php. Fungsi ini akan langsung menampilkan form komentar di bagian bawah laman untuk diisi.Contoh form komentar di single.php

wptutorial-preview-form-komentar-single-post

Single Post Navigation

Kembali ke  single.php. Catat bahwa seperti halnya di laman  index.php, kita menggunakan fungsi wptutorial_content_nav() untuk membuat pranala navigasi di laman single. Saat kita bahas Templat Index di Tutorial ke-9, kita tambahkan fungsi ini di templat  inc/template-tags.php .

Buka file template-tags.php dan kita lihat kembali bagaimana fungsi navigasi untuk theme wptutorial yang sedang kita bangun ini. Penamaan fungsi navigasi yang diawali dengan nama theme wptutorial_ menunjukkan kalau fungsi navigasi tersebut adalah fungsi kustom milik theme wptutorial.

Dibawah ini menampilkan bagian khusus fungsi yang menangani navigasi di laman  single post.

 

Berbeda dengan laman index, arsip dan hasil pencarian yang menggunakan urutan  next_posts_link() dan previous_posts_link() , di laman single urutannya lebih akurat dengan menampilkan judul yaitu previous_post_link() dan next_post_link(). Mari kita lihat di pratinjau theme ini contoh bagaimana tampilan pranala navigasi yang sedang kita bahas :

Contoh Navigasi laman index, arsip, hasil pencarian (dengan syle)

index-post-nav-style

Contoh Navigasi laman single post.

single-post-nav-style

Jelaskan bedanya, di laman single, navigasi langsung mengalihkan laman dengan menampilkan judul artikel sebelumnya atau selanjutnya. Kalau artikel yang kita lihat adalah terbaru maka navigasi akan menampilkan judul post atau tulisan sebelumnya tanpa navigasi ke arah post selanjutnya, demikian juga sebaliknya kalau post yang kita baca adalah posting tulisan pertama yaitu Hello World maka tidak ada navigasi ke post sebelumnya. (catatan saya masih mempertukarkan beberapa istilah native WordPress seperti post saya katakan tulisan atau artikel).

Post Attachments

Tidak banyak orang yang menggunakan  post attachments untuk melampirkan file lain misalnya gambar/foto padahal cukup menarik. Ketika kita ingin menambahkan sebuah foto atau gambar ilustrasi ke sebuah tulisan atau post, kita sebenarnya melampirkan foto/gambar itu ke  sebuah post atau tulisan. Tentu saja, kita dapat melampirkan lebih dari sekedar file gambar/foto. Untuk lampiran gambar/foto kita buat file templat bernama image.php . Tapi kalau kita ingin, bisa juga format file lain dibuat templatnya misalnya lampiran file video, audio, bahkan aplikasi dengan membuat file templat video.php, audio.php, dan application.php  (lihat dalam hierarki templat diatas).

Buka kembali Notepad++ Anda dan buat file image.php , simpan di folder theme dan salin kode berikut .

Templat lampiran atau attachment sebenarnya terlihat serupa strukturnya dengan templat file  single.php. Beda dengan  single.php , file image.php tidak menggunakan  get_template_part() untuk memanggil templat lain yang mengandung isi (content) yang diperlukan didalam  Loop. Kenapa kita tempatkan isi Loop secara langsung di tempat image.php? Ini dilakukan karena kita tidak menggunakan kode spesifik ini di tempat lain di dalam theme yang kita buat. Jika kita ingin menggunakan ulang kode ini di templat lain, barulah kita gunakan menggunakan fungsi get_template_part().

Kalau kita amati lebih lama, file image.php mirip dengan cara menampilkan  regular post atau tulisan reguler seperti berita, hanya saja jenis isinya bukan teks tapi gambar/foto atau format multimedia lainnya. Kita tinjau baris kode header berikut di file  image.php.

Di kode ini kita tampilkan judul gambar (yaitu judul yang kita tulis di field isian ketika mengubah (edit) dan mengunggah gambar) dan metadata gambar (tanggal publikasi, dimensi gambar dalam piksel, dan judul dari post dimana gambar akan dilekatkan, diikuti dengan pranala untuk mengubah gambar).

Pranala navigasi gambar memungkinkan kita menelusuri semua gambar yang dilampirkan di sebuah tulisan atau post. Di tutorial ke-6 , Membuat Fungsi Untuk Theme, kita telah menambahkan fungsi wptutorial_enhanced_image_navigation() di template  inc/tweaks.php, yang mengaitkan  (#main) ke akhir pranala navigasi gambar dengan next/previous.  Di tutorial ke-8, Templat Header, kita juga menambahkan  JavaScript  yang memungkinkan pemakai untuk menelusuri gambar menggunakan panah keyboard ke kiri dan kanan .

Sampai akhir baris kode  image.php  keterangan yang diberikan sudah cukup memadai untuk menjelaskan gagasan umum yang dapat dilakukan dengan templat image.php . Catat bahwa tak perlu ada panggilan ke fungsi  get_sidebar(). Ini memungkinkan ruang yang lebih luas untuk menampilkan gambar, tapi jika diinginkan adanya sidebar silahkan menambahkannya sesuai dengan ide Anda.

Templat 404 (Page Not Found)

Nomor Error  404 adalah kode server untuk mengatakan kalau “File Not Found” atau “I can’t find this page”  sebagai suatu peringatan bahwa ada yang tak ditemukan di theme Anda, baik karena memang tidak ada atau karena hilang terhapus atau lupa dibuat. Bisa juga orang salah mengetikkan nama file atau ada yang iseng menggunakan domain Anda dan mengetikan sembarang kata, atau mungkin saja materi tadinya ada tapi sedang di tunda penayangannya karena direvisi. Ada banyak sebab makanya server menyediakan tanda Error nomor 404 sebagai suatu hasil yang menyatakan bahwa apa yang diinginkan pemakai tidak ada diserver.

ohh-404-template

Untuk mengakomodasi Error 404, WordPress menyediakan templat 404.php . Di WordPress file 404.php akan terambil jika kondisi yang diceritakan diatas terjadi. Templat ini dilengkapi dengan form pencarian sebagai alternatif mencari kembali.

Kalau file 404.php belum dibuat, kembali ke editor Anda dan buat file 404.php dan salin kode berikut :

Templat diatas tidak menyertakan sidebar, tapi kalau mau silahkan masukkan kode <get_sidebar(); ?> diatas baris  <get_footer(); ?> .

Ok, kiranya bagian ini diakhiri disini.

Selamat belajar.

Satu pemikiran pada “10. Templat Single Post, Post Attachment, 404

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *