Indonesian (Bahasa Indonesia) translation by Ari Ana (you can also view the original English article)
Dalam posting pertama dari seri ini, kami memperkenalkan ide tentang dunia filter dalam konteks WordPress. Dalam tutorial ini, kita akan mulai meninjau 50 filter yang dipilih dengan menjelaskan apa yang mereka lakukan dan melihat contoh untuk setiap filter.
Jadi, tanpa basa-basi lagi, inilah batch pertama dari 50 filter kami!
Mengubah Pesan Kesalahan Login Default
WordPress memberikan terlalu banyak informasi ketika menampilkan kesalahan login: "The password you entered for the username barisunver is incorrect." Itu berarti peretas dapat mencoba nama pengguna yang berbeda untuk mengetahui nama pengguna yang kita gunakan. Anda dapat menonaktifkan jenis pesan ini berkat filter ini.
Contoh: Memperbaiki "Masalah TMI"
Mari ubah semua pesan kesalahan ke string kosong untuk mencegah peretas mencari tahu kredensial kita:
<?php add_filter( 'login_errors', 'login_errors_example' ); function login_errors_example( $error ) { $error = ''; return $error; } ?>
Di sana. Jauh lebih baik.
Mengarahkan Komentator ke Halaman Lain
Setelah memposting komentar di WordPress, Anda tetap berada di halaman yang sama. Ya, itu hal yang logis untuk dilakukan, tetapi apakah Anda tahu Anda dapat membuat komentator Anda mengarahkan ke halaman lain setelah komentar yang sukses? Filter comment_post_redirect
memungkinkan kita melakukan itu dan saya rasa saya menemukan contoh sempurna untuk filter ini!
Contoh: Mengarahkan Pengguna ke Halaman Langganan Setelah Komentar Sukses
Komentator lebih cenderung "mengikuti" posting blog Anda, bukan? Jadi jika kita mengarahkan mereka ke halaman yang mengatakan "Terima kasih atas komentar Anda! Apakah Anda ingin berlangganan blog saya?", Kita dapat mengubah komentator tersebut menjadi pelanggan! Dan ini adalah tugas yang mudah untuk dilakukan, juga, dengan bantuan filter comment_post_redirect
kita yang indah:
<?php add_filter( 'comment_post_redirect', 'comment_post_redirect_example' ); function comment_post_redirect_example( $location ) { return '/thanks-for-your-comment/'; } ?>
Perhatikan bahwa WordPress menggunakan fungsi wp_safe_redirect()
yang berarti Anda harus menggunakan halaman lokal atau halaman di host yang diizinkan (lihat filter allowed_redirect_hosts
di bawah).
Mengizinkan Pengarahan Eksternal untuk Fungsi wp_safe_redirect()
Secara default, fungsi wp_safe_redirect()
tidak mengizinkan pengalihan eksternal. Dengan menggunakan filter ini, kita dapat mengubah perilaku itu dan menentukan host eksternal.
Contoh: Mengizinkan Pengalihan Subdomain
Karena fungsi wp_safe_redirect()
hanya mengizinkan pengalihan dalam instalasi WordPress Anda, subdomain domain Anda juga terlarang.
Mari buat WordPress mengizinkan mereka:
<?php add_filter( 'allowed_redirect_hosts', 'allowed_redirect_hosts_example' ); function allowed_redirect_hosts_example( $content ) { $content[] = 'forum.mywebsite.com'; $content[] = 'welcome.mywebsite.com'; $content[] = 'help.mywebsite.com'; return $content; } // Example source: https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts ?>
Menambahkan kelas ke <body>
Fungsi body_class()
cukup mengagumkan. Ini menyediakan kelas yang berbeda untuk tag body
pada halaman yang berbeda sehingga Anda dapat menggunakan file CSS Anda secara lebih efektif. Dan dengan filter dengan nama yang sama, body_class
, Anda dapat menambah atau menghapus kelas.
Contoh: Menambahkan Kelas Category ke Tag <body>
dari Halaman Posting
Jika Anda membutuhkan gaya yang berbeda untuk setiap kategori Anda, filter body_class
dapat membantu Anda dengan menambahkan kelas dengan nama kategori ke tag body
dari halaman posting tunggal Anda.
Begini caranya:
<?php add_filter( 'body_class', 'body_class_example' ); function body_class_example( $classes ) { if( is_single() ) { foreach( get_the_category( get_the_ID() ) as $category ) $classes[] = 'cat-' . $category->category_nicename; } return $classes; } // Example source: https://codex.wordpress.org/Function_Reference/body_class#Add_Classes_By_Filters ?>
Jika Anda memiliki kategori bernama "World", Anda dapat menggunakan kelas .cat-world
untuk menata posting di kategori "World".
Mengubah Pelokalan
WordPress adalah sistem manajemen konten #1 di dunia karena memungkinkan kita menerjemahkan hampir setiap bagian teks di dalamnya. Dan filter locale
memungkinkan kita mengatur pelokalan untuk instalasi WordPress kita.
Contoh: Mengubah Bahasa Situs Web dengan Parameter URL
Jika Anda memiliki situs web multibahasa, solusi mudah untuk beralih bahasa cepat adalah melalui parameter URL, seperti di bawah ini:
<?php add_filter( 'locale', 'locale_example' ); function locale_example( $lang ) { if ( 'tr' == $_GET['language'] ) { return 'tr_TR'; } else { return $lang; } } // Example source: http://codex.wordpress.org/Plugin_API/Filter_Reference/locale ?>
Sekarang, ketika Anda menetapkan parameter url seperti mywebsite.com/?language=tr
, locale situs web Anda akan diubah menjadi bahasa Turki. Bukan isi posting, tentu saja, tapi ini adalah sebuah awal.
Memfilter Sanitasi Nama Pengguna
WordPress membersihkan nama pengguna dengan fungsi sanitasi bernama sanitize_user()
. Dengan filter dengan nama yang sama, Anda dapat menyesuaikan fungsi ini.
Contoh: Menerima Nama Pengguna Hanya dalam Huruf Kecil
Jika Anda tidak ingin menerima nama pengguna dengan huruf besar di dalamnya (apakah itu "SHOUTINGBOY88" atau "CrazyGirl92"), Anda dapat menggunakan fungsi strtolower
PHP dan mengaitkannya ke filter sanitize_user
seperti di bawah ini:
<?php add_filter( 'sanitize_user', 'strtolower' ); // Example source: http://codex.wordpress.org/Plugin_API/Filter_Reference/sanitize_user ?>
Ini mungkin salah satu contoh filter termudah dalam seri ini.
Memfilter Konten Posting
Yang ini tidak perlu banyak perkenalan: Filter the_content
memungkinkan kita untuk mengutak-atik konten posting.
Contoh: Menghapus Tag <p>
Pembungkus Gambar
WordPress tidak membiarkan kita menampilkan gambar di luar paragraf - itu secara otomatis membungkus mereka tag <p>
, yang menyebalkan bagi saya. Jika Anda terganggu dengan itu juga, Anda dapat menghapus tag <p>
dengan bantuan potongan kode kecil ini:
<?php add_filter( 'the_content', 'the_content_example' ); function the_content_example( $content ) { return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content); } // Example source: http://wpsnipp.com/index.php/functions-php/remove-p-tag-from-around-images-in-the_content/ ?>
Memfilter Formulir untuk Posting yang Dilindungi dengan Kata Sandi
Untuk posting yang dilindungi kata sandi, WordPress secara otomatis menggantikan konten posting dengan formulir kata sandi. Dengan filter the_password_form
, Anda dapat mengedit formulir ini.
Contoh: Menyederhanakan Formulir Kata Sandi
Jika posting yang dilindungi kata sandi adalah hal biasa untuk situs WordPress Anda dan Anda tidak memerlukan teks "This content is password protected.
To view it please enter your password below:" berulang-ulang dalam loop, Anda dapat membersihkan dan menyederhanakan formulir kata sandi dengan bantuan potongan kode ini:
<?php add_filter( 'the_password_form', 'the_password_form_example' ); function the_password_form_example() { $output = '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post">'; $output .= '<span>' . __( "Enter the password:" ) . ' </span>'; $output .= '<input name="post_password" type="password" size="20" />'; $output .= '<input type="submit" name="Submit" value="' . esc_attr__( "Go" ) . '" />'; $output .= '</form>'; return $output; } // Example source: http://codex.wordpress.org/Using_Password_Protection#Password_Form_Text ?>
Ini dia; sekarang Anda hanya memiliki tiga kata, bidang masukan kata sandi dan tombol kirim, semuanya dalam satu baris.
Memfilter Fungsi the_terms()
Jika Anda tidak puas dengan output fungsi the_terms()
, atau Anda hanya ingin menggunakannya dengan tujuan yang berbeda, Anda dapat menggunakan filter dengan nama yang sama: the_terms
.
Contoh: Strip Tag HTML dari Fungsi the_terms()
Beberapa tahun yang lalu, saya harus dapat memiliki tag posting saya dalam teks biasa. Saya menghabiskan banyak waktu untuk menemukan solusi - ternyata ada yang sangat sederhana:
<?php add_filter( 'the_terms', 'strip_tags' ); ?>
Anda tidak dapat membayangkan tampilan wajah saya ketika saya menemukan bahwa saya dapat menghubungkan fungsi PHP ke filter the_terms
.
Mengubah Alamat Email untuk Kirim Dari
Ketika WordPress mengirim email kepada Anda atau anggota situs web Anda, ia menggunakan alamat email seperti [email protected]
. Dengan filter ini, Anda dapat mengubahnya.
Contoh: Mengatur Alamat Email Anda Sendiri sebagai "Dari Alamat Email"
Dengan fungsi yang hanya mengembalikan alamat email yang berbeda, Anda dapat mengubah alamat email pengirimnya:
<?php add_filter( 'wp_mail_from', 'wp_mail_from_example' ); function wp_mail_from_example( $email ) { return '[email protected]'; } ?>
Anda dapat menggunakannya bersama dengan filter wp_mail_from_name
: Logika yang sama, cukup tulis suatu fungsi untuk mengembalikan string lain dari nama kustom dan kaitkan ke filter wp_mail_from_name
.
Merangkum untuk Hari Ini
Kami telah melalui 10 dari 50 filter di artikel ini. Saya harap Anda menyukai dan belajar hal-hal baru darinya. Sampai jumpa di yang berikutnya!
Saya juga ingin mendengar pemikiran Anda. Apa pendapat Anda tentang filter-filter ini? Kirimkan komentar Anda di bawah ini; dan jika Anda menyukai artikelnya, jangan lupa untuk membagikannya!
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weekly