Pelajaran yang Dipetik Saat Mengembangkan Plugin WordPress
Diterbitkan: 2022-03-10Setiap pengembang plugin WordPress berjuang dengan masalah sulit dan kode yang sulit dipelihara. Kami menghabiskan larut malam untuk mendukung pengguna kami dan merobek rambut kami ketika peningkatan merusak plugin kami. Mari saya tunjukkan cara membuatnya lebih mudah.
Pada artikel ini, saya akan membagikan pengalaman saya selama lima tahun mengembangkan plugin WordPress. Plugin pertama yang saya tulis adalah plugin pemasaran sederhana. Itu menampilkan tombol ajakan bertindak (CTA) dengan frasa pencarian Google. Sejak itu, saya telah menulis 11 plugin gratis lainnya, dan saya memelihara hampir semuanya. Saya telah menulis sekitar 40 plugin untuk klien saya, dari yang sangat kecil hingga yang telah dipertahankan selama lebih dari setahun sekarang.
Mengukur Kinerja Dengan Peta Panas
Peta panas dapat menunjukkan kepada Anda tempat yang tepat yang menerima keterlibatan paling banyak pada halaman tertentu. Cari tahu mengapa mereka sangat efisien untuk tujuan pemasaran Anda dan bagaimana mereka dapat diintegrasikan dengan situs WordPress Anda. Baca artikel terkait →
Pengembangan dan dukungan yang baik menghasilkan lebih banyak unduhan. Lebih banyak unduhan berarti lebih banyak uang dan reputasi yang lebih baik. Artikel ini akan menunjukkan kepada Anda pelajaran yang telah saya pelajari dan kesalahan yang saya buat, sehingga Anda dapat meningkatkan pengembangan plugin Anda.
1. Memecahkan Masalah
Jika plugin Anda tidak menyelesaikan masalah, plugin tidak akan diunduh. Ini sesederhana itu.
Ambil plugin Advanced Cron Manager (8,000+ instalasi aktif). Ini membantu pengguna WordPress yang mengalami kesulitan men-debug cron mereka. Plugin ini ditulis karena suatu kebutuhan — saya membutuhkan sesuatu untuk membantu diri saya sendiri. Saya tidak perlu memasarkan yang satu ini, karena orang sudah membutuhkannya. Itu menggaruk gatal mereka.
Di sisi lain, ada Bug — plugin fly on the screen (70+ instalasi aktif). Ini secara acak mensimulasikan lalat di layar. Itu tidak benar-benar menyelesaikan masalah, jadi tidak akan memiliki banyak penonton. Itu adalah plugin yang menyenangkan untuk dikembangkan.
Fokus pada suatu masalah. Ketika orang tidak melihat kinerja SEO mereka dengan baik, mereka memasang plugin SEO. Ketika orang ingin mempercepat situs web mereka, mereka memasang plugin caching. Ketika orang tidak dapat menemukan solusi untuk masalah mereka, maka mereka menemukan pengembang yang menulis solusi untuk mereka.
Seperti yang dibuktikan oleh David Hehenberger dalam artikelnya tentang menulis plugin yang sukses, kebutuhan adalah faktor kunci dalam keputusan pengguna WordPress apakah akan menginstal plugin tertentu.
Jika Anda memiliki kesempatan untuk memecahkan masalah seseorang, ambillah kesempatan itu.
2. Dukung Produk Anda
“3 dari 5 orang Amerika akan mencoba merek atau perusahaan baru untuk pengalaman layanan yang lebih baik. 7 dari 10 mengatakan mereka bersedia membelanjakan lebih banyak dengan perusahaan yang mereka yakini memberikan layanan terbaik.”
— Nykki Yeager
Jangan abaikan dukungan Anda. Jangan memperlakukannya sebagai suatu keharusan, tetapi lebih seperti kesempatan.
Dukungan berkualitas baik sangat penting agar plugin Anda berkembang. Bahkan plugin dengan kode terbaik akan mendapatkan beberapa tiket dukungan. Semakin banyak orang yang menggunakan plugin Anda, semakin banyak tiket yang akan Anda dapatkan. Pengalaman pengguna yang lebih baik akan memberi Anda lebih sedikit tiket, tetapi Anda tidak akan pernah mencapai kotak masuk 0.
Setiap kali seseorang memposting pesan di forum dukungan, saya segera mendapatkan pemberitahuan email, dan saya merespons sesegera mungkin. Ini terbayar. Sebagian besar ulasan bagus saya diperoleh karena dukungan. Ini adalah efek sampingnya: Dukungan yang baik sering kali diterjemahkan menjadi ulasan bintang 5.
Ketika Anda memberikan dukungan yang sangat baik, orang-orang mulai mempercayai Anda dan produk Anda. Dan plugin adalah produk, meskipun itu sepenuhnya gratis dan sumber terbuka.
Dukungan yang baik lebih kompleks daripada menulis jawaban singkat sekali sehari. Saat plugin Anda mendapatkan daya tarik, Anda akan mendapatkan beberapa tiket per hari. Jauh lebih mudah untuk mengelola jika Anda proaktif dan menjawab pertanyaan pelanggan bahkan sebelum mereka bertanya.
Berikut daftar beberapa tindakan yang dapat Anda lakukan:
- Buat bagian FAQ di repositori Anda.
- Sematkan utas "Sebelum Anda bertanya" di bagian atas forum dukungan Anda, yang menyoroti kiat pemecahan masalah dan FAQ.
- Pastikan plugin Anda mudah digunakan dan pengguna tahu apa yang harus mereka lakukan setelah menginstalnya. UX itu penting.
- Analisis pertanyaan dukungan dan perbaiki poin nyeri. Siapkan papan tempat orang dapat memilih fitur yang mereka inginkan.
- Buat video yang menunjukkan cara kerja plugin, dan tambahkan ke halaman utama plugin Anda di repositori WordPress.org.
Tidak masalah perangkat lunak apa yang Anda gunakan untuk mendukung produk Anda. Forum dukungan resmi WordPress.org berfungsi sama baiknya dengan email atau sistem dukungan Anda sendiri. Saya menggunakan forum WordPress.org untuk plugin gratis dan sistem saya sendiri untuk plugin premium.
3. Jangan Gunakan Komposer
Composer adalah perangkat lunak pengelola paket. Repositori paket di-host di packagist.org, dan Anda dapat dengan mudah mengunduhnya ke proyek Anda. Ini seperti NPM atau Bower untuk PHP. Mengelola paket pihak ketiga Anda seperti yang dilakukan Composer adalah praktik yang baik, tetapi jangan menggunakannya di proyek WordPress Anda.
Aku tahu, aku menjatuhkan bom. Mari saya jelaskan.
Komposer adalah perangkat lunak yang hebat. Saya menggunakannya sendiri, tetapi tidak di proyek WordPress publik. Masalahnya terletak pada konflik. WordPress tidak memiliki manajer paket global, jadi setiap plugin harus memuat dependensinya sendiri. Ketika dua plugin memuat ketergantungan yang sama, itu menyebabkan kesalahan fatal.

Sebenarnya tidak ada solusi ideal untuk masalah ini, tetapi Komposer memperburuknya. Anda dapat menggabungkan ketergantungan di sumber Anda secara manual dan selalu memeriksa apakah Anda aman untuk memuatnya.
Masalah komposer dengan plugin WordPress masih belum terpecahkan, dan tidak akan ada solusi yang layak untuk masalah ini dalam waktu dekat. Masalah telah muncul bertahun-tahun yang lalu, dan seperti yang dapat Anda baca di artikel WP Tavern, banyak pengembang mencoba menyelesaikannya, tanpa hasil.
Yang terbaik yang dapat Anda lakukan adalah memastikan bahwa kondisi dan lingkungan baik untuk menjalankan kode Anda.
4. Cukup Mendukung Versi PHP Lama
Jangan mendukung versi PHP yang sangat lama, seperti 5.2. Masalah keamanan dan pemeliharaan tidak sepadan, dan Anda tidak akan mendapatkan lebih banyak penginstalan dari versi lama tersebut.

Gunakan PHP 5.6 sebagai persyaratan minimal, meskipun dukungan resmi akan dihentikan pada akhir tahun 2018. WordPress sendiri membutuhkan PHP 7.2.
Ada gerakan yang menghambat dukungan terhadap versi PHP lama. Tim Yoast merilis perpustakaan Whip, yang dapat Anda sertakan dalam plugin Anda dan yang menampilkan informasi penting kepada pengguna Anda tentang versi PHP mereka dan mengapa mereka harus memutakhirkan.
Beri tahu pengguna Anda versi mana yang Anda dukung, dan pastikan situs web mereka tidak rusak setelah plugin Anda diinstal pada versi yang terlalu rendah.
5. Fokus Pada Kode Kualitas
Menulis kode yang baik memang sulit pada awalnya. Dibutuhkan waktu untuk mempelajari prinsip dan pola desain "SOLID" dan untuk mengubah kebiasaan pengkodean lama.
Saya pernah membutuhkan waktu tiga hari untuk menampilkan string sederhana di WordPress, ketika saya memutuskan untuk menulis ulang salah satu plugin saya menggunakan praktik pengkodean yang lebih baik. Itu membuat frustrasi mengetahui bahwa itu seharusnya memakan waktu 30 menit. Mengubah pola pikir saya menyakitkan tetapi sepadan.
Mengapa begitu sulit? Karena Anda mulai menulis kode yang pada awalnya tampak berlebihan dan tidak terlalu intuitif. Saya terus bertanya pada diri sendiri, "Apakah ini benar-benar dibutuhkan?" Misalnya, Anda harus memisahkan logika ke dalam kelas yang berbeda dan memastikan masing-masing bertanggung jawab untuk satu hal. Anda juga harus memisahkan kelas untuk terjemahan, pendaftaran jenis pos kustom, manajemen aset, penangan formulir, dll. Kemudian, Anda menyusun struktur yang lebih besar dari objek kecil sederhana. Itu disebut injeksi ketergantungan. Itu sangat berbeda dengan memiliki kelas "front end" dan "admin", di mana Anda menjejalkan semua kode Anda.
Praktik kontraintuitif lainnya adalah menjaga semua tindakan dan filter di luar metode konstruktor. Dengan cara ini, Anda tidak menjalankan tindakan apa pun saat membuat objek, yang sangat membantu untuk pengujian unit. Anda juga memiliki kontrol yang lebih baik atas metode mana yang dijalankan dan kapan. Saya berharap saya tahu ini sebelum saya menulis proyek dengan loop tak terbatas yang disebabkan oleh tindakan dalam metode konstruktor. Bug semacam itu sulit dilacak dan sulit diperbaiki. Proyek harus di-refactored.
Di atas hanyalah beberapa contoh, tetapi Anda harus mengetahui prinsip-prinsip SOLID. Ini berlaku untuk sistem apa pun dan bahasa pengkodean apa pun.
Saat Anda mengikuti semua praktik terbaik, Anda mencapai titik di mana setiap fitur baru cocok. Anda tidak perlu mengubah apa pun atau membuat pengecualian apa pun pada kode yang ada. Ini menakjubkan. Alih-alih menjadi lebih kompleks, kode Anda menjadi lebih maju, tanpa kehilangan fleksibilitas.
Juga, format kode Anda dengan benar, dan pastikan setiap anggota tim Anda mengikuti standar. Standar akan membuat kode Anda dapat diprediksi dan lebih mudah dibaca dan diuji. WordPress memiliki standarnya sendiri, yang dapat Anda terapkan dalam proyek Anda.
6. Uji Plugin Anda Sebelumnya
Saya belajar pelajaran ini dengan cara yang sulit. Kurangnya pengujian membuat saya merilis versi baru plugin dengan kesalahan fatal. Dua kali. Kedua kali, saya mendapat peringkat bintang 1, yang tidak bisa saya ubah menjadi ulasan positif.
Anda dapat menguji secara manual atau otomatis. Travis CI adalah produk pengujian berkelanjutan yang terintegrasi dengan GitHub. Saya telah membangun rangkaian pengujian yang sangat sederhana untuk plugin Notification saya yang hanya memeriksa apakah plugin dapat melakukan booting dengan benar pada setiap versi PHP. Dengan cara ini, saya dapat memastikan bahwa plugin tersebut bebas dari kesalahan, dan saya tidak perlu terlalu memperhatikan untuk mengujinya di setiap lingkungan.
Setiap tes otomatis membutuhkan sepersekian detik. 100 tes otomatis akan memakan waktu sekitar 10 menit untuk diselesaikan, sedangkan pengujian manual membutuhkan sekitar 2 menit untuk setiap kasus.
Semakin banyak waktu yang Anda investasikan untuk menguji plugin Anda di awal, semakin banyak yang akan Anda hemat dalam jangka panjang.
Untuk memulai pengujian otomatis, Anda dapat menggunakan perintah WP-CLI \\`wp scaffold plugin-test\\`, yang menginstal semua konfigurasi yang Anda butuhkan.
7. Dokumentasikan Pekerjaan Anda
Ini adalah klise bahwa pengembang tidak suka menulis dokumentasi. Ini adalah bagian paling membosankan dari proses pengembangan, tetapi sedikit berjalan jauh.
Tulis kode yang mendokumentasikan diri sendiri. Perhatikan variabel, fungsi dan nama kelas. Jangan membuat struktur yang rumit, seperti kaskade yang tidak dapat dibaca dengan mudah.
Cara lain untuk mendokumentasikan kode adalah dengan menggunakan "blok doc", yang merupakan komentar untuk setiap file, fungsi, dan kelas. Jika Anda menulis cara kerja fungsi dan fungsinya, akan jauh lebih mudah untuk memahami saat Anda perlu men-debugnya enam bulan dari sekarang. Standar Pengkodean WordPress mencakup bagian ini dengan memaksa Anda untuk menulis blok dokumen.
Menggunakan kedua teknik akan menghemat waktu Anda menulis dokumentasi, tetapi dokumentasi kode tidak akan dibaca oleh semua orang.
Untuk pengguna akhir, Anda harus menulis artikel berkualitas tinggi, singkat, dan mudah dibaca yang menjelaskan cara kerja sistem dan cara menggunakannya. Video bahkan lebih baik; banyak orang lebih suka menonton tutorial singkat daripada membaca artikel. Mereka tidak akan melihat kodenya, jadi buatlah hidup mereka lebih mudah. Dokumentasi yang baik juga mengurangi tiket dukungan.
Kesimpulan
Tujuh aturan ini telah membantu saya mengembangkan produk berkualitas baik, yang mulai menjadi bisnis inti di BracketSpace. Saya harap mereka akan membantu Anda dalam perjalanan Anda dengan plugin WordPress juga.
Beri tahu saya di komentar apa aturan pengembangan emas Anda atau apakah Anda merasa salah satu di atas sangat membantu.