15 Fungsi WordPress Berguna yang Harus Diketahui Semua Pengembang
WordPress penuh dengan fungsi-fungsi hebat untuk kita gunakan oleh para pengembang. Kita dapat menarik daftar posting dari kehabisan udara, memanipulasi hampir semua hal tentang mereka, mengambil pengguna yang kita inginkan dan menampilkan koneksi media sosial mereka dengan cepat.
Namun ada beberapa fungsi yang tampaknya diabaikan karena alasan yang tidak diketahui. Saya telah mengode dengan WordPress selama sekitar 8 tahun sekarang dan kadang-kadang saya masih menemukan sesuatu yang baru! Mari kita lihat beberapa foto saya fungsi diabaikan favorit dan belajar cara menggunakannya di sepanjang jalan.
antispambot ()
Saya biasanya mengangkat beberapa alis dengan yang satu ini, tampaknya menjadi salah satu fungsi yang paling tersembunyi di basis kode.
menggantikan karakter dengan entitas HTML yang merupakan salah satu cara untuk sembunyikan alamat email dari pencakar jahat.antispambot ()
$ email = '[email protected]'; gema 'Anda bisa menghubungi saya di'. antispambot ($ email). kapan saja.
Meskipun ini adalah berita gembira yang bermanfaat, ini juga merupakan contoh mengapa beberapa orang mengkritik WordPress - ini adalah fungsi yang dinamai mengerikan. Dari membaca nama fungsi, Anda tidak tahu apa fungsinya.
human_time_diff ()
Ketika saya pertama kali belajar tentang fungsi ini sekitar setahun yang lalu saya pikir itu pasti tambahan baru-baru ini yang saya abaikan di changelog. Tidak terlalu…
Fungsi ini - yang menampilkan perbedaan antara dua cap waktu - telah ada sejak versi 1.5 (yaitu 17 Februari 2018!).
Cuplikan hebat berikut yang saya pinjam dari kodeks menunjukkan berapa lama kiriman saat ini diterbitkan. Ini menggunakan mempublikasikan tanggal posting sebagai argumen pertama dan tanggal saat ini sebagai yang kedua.
gema 'Posting ini diterbitkan'. human_time_diff (get_the_time ('U'), current_time ('timestamp')). 'lalu';
get_post_meta ()
Bersabarlah dengan saya di sini, saya tahu ini adalah fungsi yang digunakan dengan baik, namun, cara kerjanya bukanlah pengetahuan yang terlalu umum. Pertama-tama, dengan menghilangkan parameter kedua dan ketiga Anda bisa tarik semua metadata untuk sebuah pos.
$ all_meta = get_post_meta (14);
Bahkan jika Anda hanya mengambil data untuk satu kunci saja, semua postmeta tetap akan ditarik.
Alasannya sebenarnya cukup logis. Metadata digunakan di banyak tempat. Jika
query database setiap kali digunakan kita akan berakhir dengan terlalu banyak query. Alih-alih, jika Anda menarik metadata, cache semua dan menggunakan nilai cache pada semua pengambilan metadata berikutnya.get_post_meta ()
wp_upload_bits ()
Fungsi ini adalah straight-up fungsi pengunggahan file. Meskipun tidak memindahkan file ke folder unggahan dan menambahkannya ke bagian media WordPress, itu sangat nyaman dan Anda selalu dapat melakukan sisanya dengan
fungsi.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name'])));
Ada beberapa penjelasan untuk ini: parameter pertama adalah nama file. Yang kedua disusutkan sehingga harus diatur ke nol (eyeroll pada konsistensi WordPress). Parameter ketiga adalah konten file yang sebenarnya.
get_post_field ()
Di masa lalu saya melihat beberapa contoh di mana seseorang menulis loop untuk mendapatkan jumlah komentar untuk sebuah posting, atau menulis permintaan basis data khusus untuk itu. Anda tidak membutuhkannya, apa yang Anda butuhkan
. Fungsi ini mengambil nilai satu bidang untuk satu posting dalam database. Mari kita hitung jumlah komentar!get_post_field ()
Pos ini sudah komentar.
wpautop ()
Fungsi ini telah menjadi sorotan sedikit, tetapi masih relatif tidak dikenal. Ini mirip dengan PHP asli nl2br
tapi bukannya membuat baris baru, itu membungkus konten Anda dalam paragraf.
Ini berguna jika Anda memiliki kotak teks dan Anda ingin memastikan bahwa ketika pengguna membuat paragraf dengan jeda baris ganda, mereka tetap terlihat di front-end juga..
Apa Kata Pengguna Kami
wp_is_mobile ()
Fungsi yang dinamai dengan tepat ini mendeteksi ketika pengguna menggunakan perangkat seluler dan memungkinkan Anda untuk menampilkan konten yang sesuai. Karena ini adalah tag bersyarat, ia mengembalikan benar atau salah tergantung pada skenario.
Kunjungi situs web kami di desktop Anda untuk pengalaman pengguna yang lebih kaya
wp_redirect ()
Contoh terakhir menunjukkan fungsi lain yang rapi:
. Ini harus digunakan sebagai pengganti PHP asli wp_redirect ()
tajuk ()
fungsi. Fungsi pengalihan WordPress memungkinkan Anda atur URL untuk dialihkan, dan juga atur kode status, bagus untuk menangani pengalihan permanen juga.
// Untuk URL yang tidak lagi digunakan wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Saya bertaruh bahwa fungsi ini berutang ketidakjelasan sebagian karena popularitas plugin WP-PageNavi. Secara default WordPress menampilkan tautan sebelumnya / berikutnya di akhir daftar posting Anda. WP-PageNavi menggantikannya dengan nomor halaman.
Ini sebenarnya dapat dilakukan dengan sedikit kerja menggunakan
fungsi. Ini memiliki beberapa parameter, jadi saya sarankan untuk mengintip dokumentasi.paginate_links ()
Contoh berikut dari codex menunjukkan bagaimana Anda dapat menambahkannya ke loop default tetapi menambahkannya ke loop kustom tidak banyak peregangan.
global $ wp_query; $ big = 999999999; // butuh integer echo paginate_links yang tidak mungkin (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => 'paged =% #%' , 'current' => maks (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Fungsi ini melengkapi PHP mati()
fungsi. Perbedaannya adalah bahwa fungsi ini akan menampilkan HTML WordPress-style bukan hanya teks biasa. Anda dapat menggunakan fungsi ini untuk menghentikan eksekusi PHP. Anda dapat menambahkan pesan, judul, dan argumen tambahan untuk ditampilkan, misalnya:
wp_die ("Ups, Anda tidak memiliki akses ke", "Izin Ditolak");
has_block ()
Di versi 5.0, WordPress memperkenalkan editor berbasis blok, diberi nama kode Gutenberg. Fungsi ini akan mengidentifikasi apakah konten tersebut mengandung Gutenberg, persis sama dengan has_shortcode ()
fungsi. Itu akan kembali benar
jika kontennya memang mengandung blok, atau Salah
jika tidak.
wp_set_script_translations ()
Karena banyak bagian dari antarmuka pengguna WordPress akan pindah ke JavaScript, maka diperlukan cara mudah untuk mendaftarkan teks yang dapat diterjemahkan dalam JavaScript yang dapat diurai dan dipahami oleh WordPress. Gunakan fungsi ini untuk mengatur string yang diterjemahkan untuk skrip Anda. Di bawah ini adalah contohnya:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Fungsi lain yang menonjol di WordPress 5.0. Fungsi ini memungkinkan Anda untuk mendaftar blok baru di editor WordPress baru. Blok Anda akan muncul di editor baru dan masukkan .
register_block_type ('plugin-saya / blok-baru', array ('judul' => 'Blok Baru', 'ikon' => 'megafon', 'kategori' => 'widget', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Fungsi ini memungkinkan Anda untuk melakukan panggilan ke endpoint API REST WordPress melalui PHP. Cukup berguna saat Anda perlu mengambil output dari REST API untuk memproses yang akan Anda proses lebih lanjut dalam sisi PHP alih-alih di sisi browser (ujung depan).
$ request = WP_REST_Request baru ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Saat membuat UI yang berat JavaScript di WordPress biasanya membutuhkan satu set data awal yang dimuat dalam halaman. Ini adalah fungsi yang akan memungkinkan Anda untuk melakukannya. Fungsi ini dimaksudkan untuk digunakan bersama dengan array_reduce
, sebagai contoh.
// Muat ulang data umum. $ preload_paths = array ('/', '/ wp / v2 / types? context = edit', '/ wp / v2 / taksonomi? per_page = -1 & konteks = edit', '/ wp / v2 / tema? status = aktif' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'setelah');
Kesimpulan
Ini hanya beberapa fungsi yang sepertinya kurang diketahui selebihnya. Saya menemukan fungsi hebat baru setiap dua bulan dan saya yakin teman-teman pengembang saya di luar sana dapat mengejutkan kami lebih jauh.
Jika Anda memiliki fungsi tidak dikenal favorit atau fungsi yang akan berguna tetapi tidak tersedia, beri tahu kami di komentar!