Membuat template halaman blog khusus dengan cara yang benar

8

Saya ingin membuat templat halaman khusus baru untuk presentasi posting blog. Saya menyadari bahwa ketika Anda menetapkan halaman untuk menampilkan posting melalui Pengaturan> Membaca , itu kemudian akan menetapkan home.php untuk menampilkan konten halaman - menjadi posting di halaman. Pilihan untuk menetapkan templat halaman pada tampilan pengeditan halaman juga hilang.

Sekarang ini menampilkan artikel standar dengan tampilan artikel. Saya ingin memberikan opsi lain bagi admin untuk memilih templat yang berbeda yang dapat menata blog dalam tata letak batu atau batu. Saya tidak yakin bagaimana melakukan ini.

Saya bisa melakukannya dengan tidak menugaskan halaman untuk menampilkan blog di Pengaturan> Membaca admin area dan kemudian memungkinkan pengguna admin untuk menetapkan templat tertentu ke halaman menggunakan menu Atribut Halaman dalam mengedit halaman tetapi menurut https://make.wordpress.org / themes / 2014/06/28 / penanganan-benar-statis-halaman-depan-dan-custom-blog-posting-indeks-templat / , ini adalah cara SALAH .

Saya sudah mencoba google mencari solusi tetapi yang saya temukan hanyalah rekomendasi untuk digunakan plugin. Bisakah seseorang mengarahkan saya ke beberapa sumber daya bermanfaat?

Ryan Coolwebs
sumber
Saya kira masalah aslinya sudah lama diselesaikan, tetapi saya hanya ingin mengatakan bahwa membaca kode sumber plugin telah banyak mengajari saya. Jika Anda dapat menemukan plugin di direktori WP.org Anda dapat mengklik tab pengembang untuk melihat kode langsung dari browser, dan lihat bagaimana melakukannya.
rtpHarry

Jawaban:

8

Jangan lupa bahwa Wordpress terutama dirancang untuk menjadi CMS blogging, jadi ketika datang ke pengembangan tema, pengembang sering memilih untuk pendekatan non-standar dengan imbalan potensi lebih banyak fitur.

Pengembang tema memiliki tiga opsi ketika mereka mendekati ini, salah satunya (# 2 di bawah) yang Anda sebutkan.

  1. Edit secara langsung index.phpuntuk memodifikasi indeks blog. Ini bukan pilihan yang baik karena index.phpharus menjadi mundur jika bagian lain dari template Anda hilang.

    • Pro: cepat dan mudah
    • Cons: rawan kesalahan dan bertentangan dengan prinsip-prinsip berorientasi objek
  2. Buat template halaman untuk indeks blog. Seperti yang Anda katakan, banyak pengembang tema memilih untuk menempuh rute ini karena ini adalah cara cepat untuk memberi Anda kontrol atas indeks blog, dan itu sebenarnya memberi Anda kemampuan untuk bermain-main dengan template indeks blog yang berbeda (yang berguna ketika mengembangkan tema serbaguna ).

    • Pro: Serbaguna, memungkinkan untuk membangun tema yang kuat
    • Cons: Anda kehilangan kemampuan untuk memanggil fungsionalitas asli Wordpress yang berkaitan dengan indeks blog.
  3. Buat front-page.php, home.phpdan index.phpdalam tema Anda. Ini front-pageakan menjadi halaman utama untuk tema tersebut. homeakan default ke indeks blog Anda dan indexakan menjadi mundur untuk semua template.

    • Pro: Bersihkan dan manfaatkan sepenuhnya objek dan metode asli Wordpress
    • Kontra: Terbatas oleh Wordpress: tidak ideal untuk banyak jenis tema kaya opsi yang Anda lihat hari ini

Secara pribadi saya suka menggunakan # 2, karena sebagian besar proyek pengembangan Wordpress saya hari ini bukan hanya blog: mereka seluruh situs dengan arsitektur informasi yang mendalam dan interaktivitas yang kompleks.

Orun
sumber
Dokumentasi untuk fungsi ini: developer.wordpress.org/themes/basics/template-hierarchy/…
Pixelsmith
0

Akan membahas beberapa pangkalan dalam jawaban saya. :)

Jika Anda membuat tema Anda sendiri, dan ingin mengubah presentasi default dari beberapa jenis halaman (misalnya halaman arsip kategori, atau halaman posting blog tunggal), maka periksa diagram hierarki templat WordPress . Ini menunjukkan file mana dalam direktori tema Anda yang digunakan untuk menampilkan jenis posting mana.

Dengan memiliki file php di tema Anda yang cocok dengan file dalam hierarki itu, itu akan secara otomatis digunakan oleh WordPress — seperti single.phpuntuk menampilkan satu posting. Jika Anda memiliki tema dengan file itu sudah ada, maka jelas Anda dapat mengubah file dan itu akan tercermin di situs.

Secara terpisah, jika Anda ingin memiliki templat halaman khusus tetapi hanya ingin admin dapat mengubahnya (berdasarkan post-by-post), maka Anda perlu melakukan beberapa pemeriksaan pada peran dan kemampuan; jawaban StackExchange ini mungkin membantu. (Anda masih perlu membuat templat halaman khusus itu, lihat artikel Majalah Smashing ini ).

Jika tidak, jika Anda ingin admin lebih global memilih templat halaman / posting berdasarkan kriteria tertentu, atau untuk memilih templat halaman khusus untuk seluruh situs, maka Anda perlu menambahkan opsi area admin untuk tema Anda, dan beberapa kustom kode dalam tema Anda untuk menampilkan halaman yang tepat berdasarkan opsi itu. Menambahkan opsi ke area admin mudah dilakukan dengan salah satu dari banyak plugin tetapi juga dapat dilakukan dengan tangan (lihat, misalnya, artikel ini di SitePoint ).

iguanarama
sumber
1
Terima kasih atas jawaban anda. Saya mengetahui cara membuat template halaman untuk halaman / posting berdasarkan heirachy tapi saya tidak bisa menemukan cara untuk memberikan opsi template untuk "Blog Posts Index Page" yang menggunakan home.php (menggunakan terminologi yang sama seperti diagram Anda berikan). Ini diatur ketika pengguna admin memilih halaman untuk menampilkan posting di Dashboard> Pengaturan> Membaca. Itu kemudian menetapkan halaman home.php / index.php. Saya tidak bisa menemukan cara untuk membuat template alternatif tanpa TIDAK menetapkan halaman di Dashboard> Pengaturan> Membaca.
Ryan Coolwebs
@RyanCoolwebs Anda mungkin perlu menambahkan opsi admin ke tema Anda yang memungkinkan pilihan antara gaya tampilan untuk halaman indeks posting blog, dan kemudian mengedit home.php untuk membaca nilai opsi dan menampilkan variasi halaman yang sesuai.
iguanarama
Ya, saya pikir menggunakan fitur penyesuai mungkin merupakan cara terbaik untuk melakukan ini. Saya dapat memeriksa opsi customiser dan kemudian mengambil bagian templat yang sesuai.
Ryan Coolwebs
0

Oke, maksud Anda Anda ingin membuat halaman templat sendiri untuk menampilkan posting blog, bukan?

Kemudian lanjutkan dengan cara ini membuat file php bernama blog-template.php

Di dalam file itu taruh kode ini di atas segalanya.

<?php 
/*
* Template Name: Blog Post
*/
?>

Kemudian di bawah ini di atas kode yang diberikan, letakkan semua kode Anda dari index.php/home.phphalaman ke halaman di atas ini, simpan file dan sekarang buat halaman dari dashboard, katakanlah sebagai nama halaman itu "Blog"Sekarang dari sisi kanan chose page templateyang baru saja kita buat Blog Postdari drop-down templat .

Publikasikan halaman tersebut dan Anda dapat menggunakan halaman Anda sendiri untuk menampilkan posting Anda.

Beritahu saya jika ada hal lain yang dibutuhkan.

Akram ul haq
sumber
OK, jadi Anda baru saja memperbaiki solusi yang OP jelas dinyatakan salah;) Membuat template halaman dan menggunakannya sebagai indeks blog bukan pendekatan terbaik, saya kira.
Krzysiek Dróżdż
Itu tidak benar-benar salah per se, hanya bahwa OP salah paham mengapa orang cenderung melakukannya dengan cara ini
Orun