Kami ingin mendesain halaman widget di panel admin sedikit berbeda, terutama untuk membantu administrator situs memahami di mana setiap widget akan muncul di situs:
Untuk itu, kita perlu mengubah HTML yang dirender oleh widgets.php (cukup mengubah css tidak cukup). Bagaimana kita bisa melakukan itu tanpa menyentuh inti?
widgets
wp-admin
core-modifications
Lea Cohen
sumber
sumber
Jawaban:
Jika Anda meningkatkan WordPress Anda menjadi 3.3.1, yang seharusnya Anda lakukan, setiap area widget di admin sekarang memiliki ID yang dapat Anda gunakan untuk menargetkan melalui CSS, yang seharusnya sudah cukup. Lihat http://core.trac.wordpress.org/ticket/18334 untuk contoh.
sumber
Saya tidak bisa mengeluarkan pertanyaan itu dari kepala saya, tetapi saya tidak punya waktu untuk solusi yang lengkap. Jadi saya hanya menuliskan ide saya di sini, maka saya akan menetapkan hadiah kecil.
Ada tindakan
'widgets_admin_page'
diwp-admin/widgets.php
atas konten lainnya. Anda dapat menempatkan kotak pratinjau di sini.Kode sampel:
Ini mencetak array dari semua sidebar yang terdaftar. Anda harus berjalan melalui semua bilah sisi untuk menemukan widget yang terdaftar.
Untuk membuat pratinjau bermanfaat, Anda memerlukan dua file: templat HTML dan lembar gaya.
Saya akan menggunakan
add_theme_support()
.Contoh kode untuk tema
functions.php
:Di
show_widget_preview()
Anda enqueue lembar gaya dan memuat template. Jadikan bilah sisi yang terdaftar di placeholder yang telah ditentukan diwidget-preview.php
.Perbarui template per AJAX setelah pengguna menekan tombol Simpan di widget.
Tantangan: Mempertimbangkan mode aksesibilitas, jendela kecil dan konflik CSS. Tampilkan pesan yang berguna ketika tidak ada sidebar terdaftar (deskripsi sidebar?). Apa yang harus terjadi ketika pengguna mencoba menyeret widget ke dalam kotak pratinjau? :)
sumber
jawaban singkatnya adalah Anda tidak bisa, bukan tanpa menyentuh inti.
namun, Anda dapat mengatur deskripsi setiap area widget (teks di bawah judul area widget) di fungsi register_sidebar.
sumber