Saya mengalami kesulitan membungkus kepala saya di sekitar $valuedan $var. Saya membaca codex dan sepertinya $valuebisa dimodifikasi, $vartidak, tapi saya belum menemukan contoh ini di alam liar. Tampaknya digunakan sebagai cara untuk melewatkan variabel. Dalam hal apa, apa perbedaan antara itu dan $var?
apply_filters(
$filter_name,// used for add_filter( $filter_name, 'callback' );
$value_to_change,// the only variable whose value you can change
$context_1,// context
$context_2 // more context);
Jadi ketika fungsi itu disebut sebagai:
// wp-login.php line 94
apply_filters('login_body_class', $classes, $action );
Jika saya mengerti dengan benar. Saya tidak menambahkan variabel untuk mengumpulkan nilai yang dikembalikan dari apply_filters karena diterapkan pada $ value_to_change secara otomatis?
r00tAcc3ss
@ r00tAcc3ss Tidak ada yang terjadi secara otomatis. Anda harus mengubah nilai dalam panggilan balik Anda. Anda juga dapat mengembalikannya jika Anda mau - tergantung pada konteksnya.
fuxia
Oh ya. Maksud saya, saya tidak harus menerima nilai yang dikembalikan ke variabel lain dan menugaskannya ke nilai $. Itu dilakukan, jika saya mengubah nilai $ dalam fungsi yang dikaitkan dan kembali, "secara otomatis."
r00tAcc3ss
11
Apa itu Filter?
Filter adalah fungsi yang WordPress lewati melalui data, pada titik-titik tertentu dalam eksekusi, tepat sebelum mengambil tindakan dengan data (seperti menambahkannya ke database atau mengirimnya ke layar browser). Filter berada di antara database dan browser (saat WordPress menghasilkan halaman), dan antara browser dan database (ketika WordPress menambahkan posting dan komentar baru ke database); sebagian besar input dan output di WordPress melewati setidaknya satu filter. WordPress melakukan beberapa penyaringan secara default, dan plugin Anda dapat menambahkan penyaringan sendiri.
Menghubungkan ke Filter
Untuk memungkinkan pengguna mengubah beberapa data tertentu (nilai, output fungsi, dll.) Kait filter disediakan melalui apply_filtersfungsi.
Kait filter ini menyertakan nama (atau tag ) filter dan setidaknya nama fungsi yang akan digunakan untuk memfilter (yaitu, mengubah cara) data.
Untuk mengubah judul posting, Anda dapat menggunakan the_titlehook filter, yang didefinisikan sebagai berikut:
apply_filters('the_title', $title, $id );
Ini berarti, filter memiliki tag / nama the_title, parameter pertama $titleadalah data yang akan diubah (yaitu, judul posting) dan parameter kedua $idadalah informasi tambahan (dalam hal ini ID posting).
Untuk menampilkan judul setiap posting di UPPERCASE, misalnya, Anda dapat menggunakan baris berikut:
add_filter('the_title','strtoupper');
Jika kita melihat add_filterfungsinya, kita melihatnya didefinisikan sebagai berikut:
Kami hanya menentukan parameter pertama dan kedua (wajib), sedangkan parameter ketiga dan keempat diatur ke nilai default masing-masing (yaitu, 10dan 1).
Filter Yang Lebih Kompleks
Jika Anda ingin memfilter hanya posting tertentu , Anda dapat menggunakan informasi tambahan (jika filter ini: ID). Untuk melakukannya, Anda harus menentukan jumlah parameter (yaitu 2 dalam hal ini), dan untuk melakukannya lagi, Anda harus menentukan parameter prioritas (yang muncul sebelum jumlah argumen).
Misalkan kita hanya ingin mempengaruhi judul posting dengan ID 42, maka tampilannya seperti ini:
add_filter('the_title','my_strtoupper',10,2);function my_strtoupper($title, $id){if(42=== $id)return strtoupper($title);return $title;}// function my_strtoupper
Dalam hal ini, kita harus menentukan keempat parameter yang tersedia.
Apa Parameter Yang Saya Miliki?
Untuk mengidentifikasi (jumlah) parameter yang tersedia dari filter tertentu, Anda harus mencari di mana ia didefinisikan (dalam hal ini: di sini ).
+1 untuk respons menyeluruh dan kelas tanpa cela (brochacho pemformatan bagus)!
bosco
Terima kasih, itu sangat menyeluruh, tetapi tidak benar-benar menjelaskan apa yang saya tanyakan. misalnya. perbedaan antara variabel $ value dan $ var di filter.
r00tAcc3ss
Hm, saya akan mengatakan, ya, tapi itu, tentu saja, perasaan subjektif saya. Saya akan menambahkan beberapa informasi tentang filter dan parameternya.
Apa itu Filter?
Menghubungkan ke Filter
Untuk memungkinkan pengguna mengubah beberapa data tertentu (nilai, output fungsi, dll.) Kait filter disediakan melalui
apply_filters
fungsi.Kait filter ini menyertakan nama (atau tag ) filter dan setidaknya nama fungsi yang akan digunakan untuk memfilter (yaitu, mengubah cara) data.
Untuk mengubah judul posting, Anda dapat menggunakan
the_title
hook filter, yang didefinisikan sebagai berikut:Ini berarti, filter memiliki tag / nama
the_title
, parameter pertama$title
adalah data yang akan diubah (yaitu, judul posting) dan parameter kedua$id
adalah informasi tambahan (dalam hal ini ID posting).Untuk menampilkan judul setiap posting di UPPERCASE, misalnya, Anda dapat menggunakan baris berikut:
Jika kita melihat
add_filter
fungsinya, kita melihatnya didefinisikan sebagai berikut:Kami hanya menentukan parameter pertama dan kedua (wajib), sedangkan parameter ketiga dan keempat diatur ke nilai default masing-masing (yaitu,
10
dan1
).Filter Yang Lebih Kompleks
Jika Anda ingin memfilter hanya posting tertentu , Anda dapat menggunakan informasi tambahan (jika filter ini: ID). Untuk melakukannya, Anda harus menentukan jumlah parameter (yaitu 2 dalam hal ini), dan untuk melakukannya lagi, Anda harus menentukan parameter prioritas (yang muncul sebelum jumlah argumen).
Misalkan kita hanya ingin mempengaruhi judul posting dengan ID 42, maka tampilannya seperti ini:
Dalam hal ini, kita harus menentukan keempat parameter yang tersedia.
Apa Parameter Yang Saya Miliki?
Untuk mengidentifikasi (jumlah) parameter yang tersedia dari filter tertentu, Anda harus mencari di mana ia didefinisikan (dalam hal ini: di sini ).
Referensi :
apply_filters
fungsiadd_filter
fungsisumber