Di WordPress shortcode, bagaimana saya bisa melewatkan atribut boolean?
Keduanya [shortcode boolean_attribute="true"]
atau [shortcode boolean_attribute=true]
memberikan nilai string.
EDIT
Tidak akan ada masalah bagi pengguna yang tahu apa yang mereka lakukan jika saya menggunakan trik yang dikomentari oleh @brasofilo. Tetapi beberapa pengguna akan tersesat jika mereka memberikan false
nilai atribut dan menerima true
nilai. Jadi, apakah ada solusi lain?
shortcode
customization
Sodbileg Gansukh
sumber
sumber
false
, jika tidaktrue
.Jawaban:
Mudah digunakan
0
dan1
menghargai dan kemudian mengetik di dalam fungsi:[shortcode boolean_attribute='1']
atau[shortcode boolean_attribute='0']
tetapi jika mau, Anda juga dapat dengan ketat memeriksa
'false'
dan menetapkannya ke boolean, dengan cara ini Anda juga dapat menggunakan:[shortcode boolean_attribute='false']
atau[shortcode boolean_attribute='true']
Kemudian:
sumber
extract()
. :)'true'
dan'false'
Sebagai ekstensi untuk jawaban @GM (yang merupakan satu-satunya cara yang mungkin untuk melakukan ini), inilah versi yang sedikit disingkat / dipercantik dan dan diperpanjang (yang secara pribadi saya sukai):
Varian yang dipersingkat / Dipercantik
Cukup dengan
boolean
memeriksa nilai yang terkandung. Jika yatrue
, hasilnya akan(bool) true
, kalau tidak akan salah. Ini menghasilkan satu kasustrue
, semuafalse
hasil lainnya .Varian Diperpanjang / Aman bagi pengguna
Alasan mengapa saya lebih suka versi ini adalah karena ini memungkinkan pengguna untuk mengetik
on/yes/1
sebagai alias untuktrue
. Ini mengurangi kemungkinan kesalahan pengguna ketika pengguna tidak ingat apa nilai sebenarnya untuktrue
itu.Catatan tambahan:
1) Selalu berikan argumen ke-3 untuk
shortcode_atts()
. Jika tidak, filter atribut shortcode tidak dapat ditargetkan.2) Jangan pernah gunakan
extract()
. Bahkan inti ingin mengurangi panggilan itu. Ini sama buruknya denganglobal
variabel, karena IDE tidak memiliki kesempatan untuk menyelesaikan konten yang diekstraksi dan akan melempar pesan kegagalan.sumber
wp_validate_boolean()
fungsi di WordPress 4.0.0 atau lebih tinggi sangat membantu dalam memvalidasi nilai boolean. Referensi Fungsi developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
, apa yang bahkan menyatakan docblock dari fungsi ini sendiri.Di sini versi sederhana yang lebih pendek, yang didasarkan pada jawaban gmazzap:
Gunakan '1' atau '0', lalu gunakan double bang "!!" yang mengubah nilai "truthy / falsey" menjadi setara boolean
perhatikan ini TIDAK akan bekerja dengan string "benar" dan "salah", hanya "1" dan "0"
sumber