Saya mencoba menambahkan div ke konten widget di bilah sisi dinamis saya.
Ini adalah kode register;
register_sidebar(array(
'name' => "Sidebar1",
'id' => 'home-sidebar-1',
'before_widget' => '<div class="sidebar-box">',
'after_widget' => '</div>',
'before_title' => '<div class="title">',
'after_title' => '</div>',
));
Tetapi kode ini menyebabkan seperti ini;
<div class="sidebar-box">
<div class="title">{WIDGET TITLE}</div>
{WIDGET CONTENT}
</div>
Inilah yang saya coba lakukan;
<div class="sidebar-box">
<div class="title">{WIDGET TITLE}</div>
<div class="content">
{WIDGET CONTENT}
</div>
</div>
Bagaimana itu bisa dilakukan?
theme-development
widgets
MBraiN
sumber
sumber
the_widget()
tidak digunakan dalamdynamic_sidebar()
fungsi, itu adalah sarana untuk memanggil widget apa pun dengan opsi yang Anda tentukan. Ini adalah tempat lain untuk memfilter sehingga solusi saya tidak mencakup kemungkinan itu. CheersTambahkan yang kedua
div
ke parameter judul:sumber
Saya menyukai ide jawaban kedua @tosco dan @sanchothefat - namun saya telah berjuang dengan kombinasi itu karena walaupun
empty( $settings[ 'title' ]
mungkin benar kembali widget itu sendiri mungkin menghasilkan judul default jika tidak ada yang ditetapkan. Judul ini kemudian dibungkus dalambefore_title
danafter_title
markup dan lagi halaman istirahat. Begitulah halnya dengan beberapa widget default.Lebih mudah untuk tetap berpegang pada parameter pendaftaran widget standar;
dan kemudian menambahkan tindakan filter sesuai jawaban Marventus di sini;
http://wordpress.org/support/topic/add-html-wrapper-around-widget-content
sumber
Inilah yang Anda lakukan untuk mencapai ini:
Ketika tidak ada judul, Anda akan mendapatkan:
Ketika ada judul Anda akan mendapatkan:
Untuk memastikan konten kosong pertama tidak muncul dalam kasus terakhir, Anda menambahkan ini ke css Anda:
sumber
Setelah melihat jawaban sebelumnya, saya pikir saya memperbaiki masalah Cmorales yang diidentifikasi dengan jawaban sanchothefat. Tentukan widget Anda sebagai berikut:
Sangat penting bahwa
before_title
danafter_title
default dihapus. Setelah beberapa percobaan dan kesalahan saya perhatikan bahwa filter pertama yang menunjukkan judul default adalahwidget_title
. Kemudian gunakanwidget_title
filter seperti ini:Pada dasarnya,
<div class="panel-heading"><h3 class="panel-title">
ini milik sayabefore_title
dan milik</h3></div>
sayaafter_title
. Terakhir, gunakandynamic_sidebar_params
untuk menambahkan div penutup untuk bungkus konten kami:Itu tidak cantik, tetapi berhasil.
sumber
Saya hanya sedikit mengubah kode sehingga tidak perlu menyentuh register_sidebar . Daftarkan bilah sisi dengan cara biasa:
Dan di bawah ini adalah kode yang dimodifikasi Dari Solusi Sanchothefat:
sumber
Seperti disebutkan dalam komentar, beberapa widget inti menambahkan judul mereka sendiri yang kemudian dibungkus dua kali dengan konten div. Untuk menghapusnya, Anda cukup mengembalikan string kosong. Satunya downside adalah bahwa Anda harus memasukkan semua judul secara manual.
Koreksi saya jika saya kehilangan sesuatu di sini, tetapi saya pikir itu cukup solid.
sumber