Saya memiliki widget khusus sederhana yang meminta lebarnya (yang digunakan kemudian di ujung depan). Bidang lebar adalah dropdown pilih, sehingga pengguna memiliki opsi yang telah ditentukan.
Saya akan memiliki banyak contoh widget saya, masing-masing akan memiliki pengaturan lebar sendiri.
Sekarang, dalam kode widget saya, saya memiliki kode berikut:
echo $before_widget;
yang mengakibatkan:
<div class="widget my" id="my-widget-1"></div>
Apa yang ingin saya lakukan adalah entah bagaimana menghubungkan ke $before_widget
dan menambahkan kelas saya sendiri (lebar yang ditentukan dari dropdown pilih). Jadi, saya ingin markup berikut:
<div class="widget my col480" id="my-widget-3"></div>
Dan jika tidak ada kelas yang ditentukan maka saya ingin menambahkan class="col480"
.
Bagaimana saya mencapai ini?
Terimakasih atas bantuannya! Dasha
sumber
Anda dapat menggunakan
dynamic_sidebar_params
filter hook untuk menemukan widget Anda dan menambahkan kelas Anda ke dalamnya:sumber
get_option('widget-name')
$before_widget
string. Jawaban Anda membuat saya pada jalur yang tepat menemukan itu$before_widget
adalah string. Terima kasih lagi :)Cara lain yang saya temukan untuk menambahkan kelas untuk widget khusus adalah dengan menggunakan kunci ' classname ' dari fungsi konstruk Anda seperti di:
Dan pastikan untuk menggunakan default ' before_widget ' di tema Anda atau jika Anda menggunakan
register_sidebar()
di function.php, lakukan seperti ini:Kemudian pada setiap instance widget Anda, Anda akan memiliki kelas 'widget my-class-name' seperti ini:
Anda juga dapat memanggil induk konstruktor terlebih dahulu dan kemudian menambahkan nama kelas apa pun yang Anda inginkan:
sumber
pertama-tama tambahkan kelas placeholder khusus di konstruktor
Kemudian gantilah dengan kelas / pilihan Anda berdasarkan pada opsi widget seperti ini
Anda dapat menemukan detailnya dengan contoh di http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
sumber
Anda dapat mencoba filter ini:
sumber