15 Fungsi WordPress berguna Semua Pengembang Harus Tahu
WordPress penuh dengan fungsi yang hebat untuk pemaju kami untuk digunakan. Kita boleh tarik senarai pos keluar dari udara yang nipis, memanipulasi hampir segala-galanya tentang mereka, ambil mana-mana pengguna yang kita inginkan dan paparkan sambungan media sosial mereka di dalam sekejap.
Walau bagaimanapun terdapat beberapa fungsi yang sepatutnya diabaikan kerana sebab-sebab yang tidak diketahui. Saya telah berkodekan dengan WordPress selama sekitar 8 tahun sekarang dan kadang-kadang saya masih mencari sesuatu yang baru! Mari kita lihat sebahagian daripada saya fungsi yang diingini kegemaran dan belajar bagaimana menggunakannya di sepanjang jalan.
antispambot ()
Saya biasanya menaikkan beberapa kening dengan yang satu ini, nampaknya merupakan salah satu fungsi yang paling tersembunyi dalam pangkalan data.
menggantikan aksara dengan entiti HTML yang merupakan salah satu cara untuk alamat e-mel mask dari pengikis jahat.antispambot ()
$ email = '[email protected]'; echo 'Anda boleh menghubungi saya di'. antispambot ($ email). 'bila-bila masa'.
Walaupun ini adalah berita gembira yang berguna, ia juga merupakan contoh mengapa sesetengah orang mengkritik WordPress - ini adalah fungsi yang dinamai hebat. Dari membaca nama fungsi, anda tidak tahu apa yang dilakukannya.
human_time_diff ()
Apabila saya mula-mula belajar mengenai fungsi ini kira-kira setahun yang lalu saya fikir ia mesti menjadi tambahan baru-baru ini yang saya terlepas pandang dalam changelog. Tidak cukup ...
Fungsi ini - yang menghasilkan perbezaan antara dua cap waktu - telah dihidupkan sejak versi 1.5 (pada 17 Februari 2018!).
Potongan hebat yang saya meminjam dari codex menunjukkan berapa lama dahulu jawatan semasa diterbitkan. Ia menggunakan menerbitkan tarikh siaran sebagai hujah pertama dan juga tarikh semasa sebagai yang kedua.
echo 'Catatan ini diterbitkan'. human_time_diff (get_the_time ('U'), current_time ('timestamp')). 'lalu';
get_post_meta ()
Bawa dengan saya di sini, saya tahu ini adalah fungsi yang digunakan dengan baik, bagaimanapun, bagaimana ia berfungsi tidak pengetahuan umum. Pertama sekali, dengan menghilangkan parameter kedua dan ketiga, anda boleh tarik semua metadata untuk jawatan.
$ all_meta = get_post_meta (14);
Walaupun anda hanya mengambil data untuk kunci tunggal semua postmeta ditarik pula.
Alasannya sebenarnya agak logik. Metadata digunakan di beberapa tempat. Jika
menyoal pangkalan data setiap kali ia digunakan kita akan berakhir dengan terlalu banyak pertanyaan. Sebaliknya, jika anda menarik metadata, ia cache semua dan menggunakan nilai cache pada semua pengeditan metadata berikutnya.get_post_meta ()
wp_upload_bits ()
Fungsi ini lurus fungsi muat naik fail. Walaupun ia tidak memindahkan fail ke folder muat naik dan menambahnya ke bahagian media WordPress, ia sangat mudah dan anda boleh melakukan selebihnya dengan
fungsi.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
Beberapa penjelasan ada di sini: parameter pertama adalah nama fail. Yang kedua disusut nilai supaya ia perlu ditetapkan kepada null (eyeroll pada konsistensi WordPress). Parameter ketiga ialah kandungan sebenar fail.
get_post_field ()
Pada masa lalu saya melihat beberapa contoh di mana seseorang menulis gelung untuk mendapatkan kiraan komen untuk jawatan, atau menulis pertanyaan pangkalan data khusus untuknya. Anda tidak memerlukannya, apa yang anda perlukan
. Fungsi ini mengambil nilai medan tunggal untuk jawatan tunggal dalam pangkalan data. Mari ambil kiraan komen!get_post_field ()
Jawatan ini ada komen.
wpautop ()
Fungsi ini telah keluar menjadi tumpuan sedikit, tetapi ia masih agak tidak diketahui. Ia serupa dengan orang asli PHP nl2br
tetapi bukannya menciptakan barisan baru, ia membungkus kandungan anda dalam perenggan.
Ini berguna jika anda mempunyai kotak teks dan anda ingin memastikan bahawa apabila pengguna membuat perenggan dengan garis berganda berganda, mereka tetap kelihatan di bahagian depan juga.
Apa yang Kami Kata Katakan
wp_is_mobile ()
Fungsi yang diberi nama ini mengesan apabila pengguna berada pada peranti mudah alih dan membolehkan anda memaparkan kandungan dengan sewajarnya. Oleh kerana ini adalah tag bersyarat ia kembali benar atau salah bergantung kepada senario.
Lawati laman web kami di desktop anda untuk pengalaman pengguna yang lebih kaya
wp_redirect ()
Contoh terakhir menunjukkan satu lagi fungsi yang kemas:
. Ini harus digunakan sebagai pengganti asal PHP wp_redirect ()
kepala()
fungsi. Fungsi redirection WordPress membolehkan anda tetapkan URL untuk redirect ke, dan juga menetapkan kod status, Hebat untuk menguruskan pelencongan kekal juga.
// Untuk URL yang tidak lagi digunakan wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Saya yakin bahawa fungsi ini bererti kekaburan sebahagiannya kepada populariti plugin WP-PageNavi. Secara lalai WordPress memaparkan pautan sebelumnya / seterusnya pada akhir senarai siaran anda. WP-PageNavi menggantikannya dengan nombor halaman.
Ini sebenarnya boleh dilakukan dengan sedikit kerja menggunakan
fungsi. Ia mempunyai beberapa parameter jadi saya cadangkan mengambil mengintip dokumentasi.paginate_links ()
Contoh berikut dari codex menunjukkan bagaimana anda boleh menambahkannya ke gelung lalai tetapi menambahkannya ke gelung tersuai tidak banyak peregangan.
$ wp_query global; $ besar = 999999999; // memerlukan integer echo paginate_links (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big)), 'format' => '? paged = , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Fungsi ini melengkapi PHP mati ()
fungsi. Perbezaannya adalah bahawa fungsi ini akan memaparkan HTML-gaya HTML bukan hanya teks biasa. Anda boleh menggunakan fungsi ini untuk menghentikan pelaksanaan PHP. Anda boleh menambah mesej, tajuk, dan argumen tambahan untuk dipaparkan, sebagai contoh:
wp_die ("Op, anda tidak mempunyai akses kepada", "Kebenaran Dihentikan");
has_block ()
Dalam versi 5.0, WordPress memperkenalkan editor berasaskan blok, yang diberi nama Gutenberg. Fungsi ini akan mengenal pasti sama ada kandungannya mengandungi Gutenberg, sama dengan yang has_shortcode ()
fungsi. Ia akan kembali benar
jika kandungan mengandungi blok, atau salah
jika tidak.
wp_set_script_translations ()
Memandangkan banyak bahagian antara muka pengguna WordPress akan berpindah ke JavaScript, ia memerlukan cara yang mudah untuk mendaftar teks-teks yang boleh diterjemahkan dalam JavaScript yang boleh dihuraikan dan difahami oleh WordPress. Gunakan fungsi ini untuk menetapkan rentetan diterjemahkan untuk skrip anda. Berikut ialah contoh:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Satu lagi fungsi penting dalam WordPress 5.0. Fungsi ini membolehkan anda mendaftarkan blok baru dalam editor WordPress baru. Blok anda akan muncul dalam editor baru dan memasukkannya .
register_block_type ('my-plugin / new-block', array ('title' => 'Blok Baru', 'icon' => 'megaphone', 'category' => 'widgets', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Fungsi ini membolehkan anda membuat panggilan ke titik akhir API REST API melalui PHP. Cukup berguna apabila anda perlu mengambil output dari API REST untuk memproses yang anda akan memproses lebih jauh dalam sisi PHP dan bukannya di sisi penyemak imbas (depan).
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); sambutan $ = rest_do_request (permintaan $); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Apabila membina UI yang berat JavaScript di WordPress biasanya memerlukan set data awal yang dipunggah dalam halaman. Ini adalah fungsi yang membolehkan anda berbuat demikian. Fungsi ini bertujuan untuk digunakan bersama dengan array_reduce
, sebagai contoh.
// Pramod data biasa. $ preload_paths = array ('/', '/ wp / v2 / types? konteks = edit', '/ wp / v2 / taxonomies? per_page = -1 & context = edit', '/ wp / v2 / ,); 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)), 'after');
Kesimpulannya
Ini hanya beberapa fungsi yang kelihatan kurang diketahui yang lain. Saya dapati satu fungsi baru yang hebat mengenai setiap dua bulan dan saya yakin rakan pemaju saya di luar sana dapat mengejutkan kami lebih jauh lagi.
Sekiranya anda mempunyai fungsi tidak jelas atau fungsi yang berguna yang berguna tetapi tidak tersedia, beritahu kami di dalam komen!