Membuat Plugin WordPress sendiri (Bagian 2)

Afwan sangat bro bila bagian ke-2 baru bisa ditulis di awal tahun 2015, setelah dinamika dan tetek bengek kehidupan yang melanda perjalanan hidup ana. Afwan juga bagi yang sudah menulis komentar yang sudah tak sabar menunggu sejak 2012 (lama amat yak?).

Lebih baik terlambat dari pada nggak sama sekali kan? Tapi tetap saja saya harus minta maaf ribuan kali lagi kepada antum semua.

Baiklah, berikut garis besar langkah-langkah yang kebanyakannya harus ditempuh dalam membuat Plugin Wordpress yang baik.

Ilustrasi: www.webcreate.me

Penentuan nama plugin

Pertama kali yang harus antum fikirkan adalah apa fungsi plugin yang akan dibuat nantinya. Misalnya, apakah plugin nanti berhubungan dengan artikel? Kalender? Cuaca? Iklan? Slide? Kalau sudah ditentukan, beri nama plugin antum dengan nama yang unik agar saat di-upload di server Wordpress Plugins bisa berbeda dengan buatan orang lain. Kecuali plugin antum ini bersifat pribadi yang antum tak berselera untuk berbagi dengan komunitas pengguna WP di server Wordpress Plugins.

Yup, antum bisa periksa di Wordpress Plugins barangkali ada nama yang sama atau gunakan Google untuk memeriksa apakah ada nama yang sama atau gunakan cara paling mudah, cantumkan saja nama antum sebagai nama awal plugin yang hendak dibuat. Misalnya, antum mau membuat plugin tentang manajer iklan pribadi, so, bolehlah kita kasih nama “Fatahillah Private Ads Manager.” Ups, he he he... Fatahillah boleh diganti dengan nama antum atau nama tim antum atau bahkan nama PH atau perusahaan antum.

Kok panjang namanya? Yup brothers, Wordpress memperbolehkan nama panjang untuk plugin, as long as it’s unique.


File-file plugin

Langkah berikutnya adalah membuat satu file PHP dengan nama yang diambil dari nama plugin antum di langkah sebelumnya. Sebagai contoh, jika tadi ana memilih nama “Fatahillah Private Ads Manager” sebagai nama plugin, maka file PHP ana akan berjuluk “fatahillah-private-ads-manager.php.”

Pemilihan nama yang unik akan menghindarkan sistem WP dari crash, karena semua plugin pengguna akan diletakkan di direktori plugin yang sama (biasanya wp-content/plugins/), oleh karena itu, tidak mungkin dua plugin yang berbeda menggunakan nama file yang sama.

Jika antum berencana membuat plugin besar nan rumit semacam plugin toko online dengan tata kelola ribuan pelanggan yang dilengkapi prosesor kartu kredit dan debit, ada baiknya -bahkan sudah seharusnya- antum bagi plugin tersebut menjadi beberapa file PHP atau bahkan banyak file PHP yang terstruktur dan terorganisasi dengan baik.

Paling tidak, plugin antum harus mengandung minimal satu file PHP yang kemudian bisa antum tambahkan file-file yang mengatur JavaScript, CSS, gambar, opsi bahasa, Flash dan lain sebagainya. Jika demikian, kita harus membuat direktori tersendiri yang biasanya bernama sama dengan nama plugin kita. Misalnya, jika nama pluginnya “Fatahillah Private Ads Manager,” maka nama direktorinya adalah “fatahillah-private-ads-manager,” sedang nama file PHP utamanya adalah “fatahillah-private-ads-manager.php” yang diletakkan di dalam direktori tersebut, lalu file-file yang lain diletakkan di dalam direktori yang sama atau dapat juga dibuatkan sub-direktori yang berbeda-beda untuk menampung berbagai macam file JavaScript, CSS, gambar, Flash dan lain sebagainya.

Saat instalasi, pengguna akan diminta untuk meletakkan direktori “fatahillah-private-ads-manager” di dalam direktori wp-content/plugins/.

Harap diperhatikan, lokasi default dari direktori plugin WP bisa dimodifikasi dan dipindahkan ke tempat lain dengan tujuan meningkatkan keamanan sistem WP kita. Jika ini yang terjadi, maka alamat direktori plugin kita harus dibuat absolut sehingga WP tidak kehilangan jejak saat direktori plugin defaultnya dimodifikasi dan dipindahkan.

Gunakan fungsi plugin_dir_path() dan plugins_url() untuk membuat plugin kita mempunyai path dan URL yang absolut.

Well, untuk teknik memindahkan direktori default silahkan kunjungi link berikut: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories.

Pada pembahasan berikutnya, jika disebutkan “file PHP plugin,” maka yang dimaksud adalah file PHP utama dari plugin, baik ia terletak di wp-content/plugins/ atau di sub-direktori tersendiri.

Catatan:

Perlu dipertimbangkan juga untuk melakukan blokir total terhadap akses langsung terhadap file-file PHP plugin antum dengan menambahkan baris berikut di awal setiap file-file PHP dalam direktori plugin antum:
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );

Atau setidaknya hindari menempatkan kode-kode PHP yang sensitif dan eksploitatif sebelum menempatkan fungsi-fungsi WordPress apapun dalam file PHP antum.

File Readme

Jika antum ingin menempatkan plugin antum di http://wordpress.org/extend/plugins/, maka diperlukan juga sebuah file readme.txt dalam format yang standar agar bisa disertakan dalam plugin antum. Silahkan merujuk http://wordpress.org/extend/plugins/about/readme.txt untuk memperoleh deskripsi yang baik tentang format yang diperlukan atau antum bisa menggunakan aplikasi generator readme otomatis seperti yang tersedia di http://generatewp.com/plugin-readme/.

Perlu diingat bahwa pusat repositori plugin WordPress akan mengambil versi “Requires” dan “Tested up to” dari readme.txt yang antum buat dengan menggunakan tag-tag yang stabil dan terstandar. Yup, hal ini akan membantu para calon pengguna plugin antum supaya bisa menggambarkan apa saja yang dibutuhkan sebelum mencoba plugin antum di sistem WP mereka.

Home Page

Sangat berguna juga jika antum mempertimbangkan untuk membuat satu website yang menjadi Home Page atau markas pusat untuk plugin-plugin buatan antum. Di website tersebut antum bisa sertakan penjelasan cara instalasi plugin secara detail, cara kerja atau fungsinya, versi WP apa yang diperlukan, perubahan apa saja yang muncul dari satu versi ke versi berikutnya juga yang terpenting bagaimana cara menggunakan plugin tersebut. Siapa tahu, barangkali antum ke depan bisa menjadi plugin maker profesional yang dibayar dollar.

File Header (kepala file)

Berikutnya, antum bisa mulai membuat file PHP utama dengan membuat dan meletakkan beberapa informasi seperti berikut.

Informasi Plugin Terstandar

Di awal file PHP utama dari plugin antum harus dicantumkan satu header yang berisi informasi plugin standar yang nantinya akan dikenali oleh WP sebagai suatu plugin yang eksis dan benar-benar ada dalam sistem. Berdasar informasi ini WP akan menambahkan plugin antum ke dalam layar manajemen plugin hingga bisa diaktifkan, dimuat dan dijalankan fungsinya. Tanpa header ini, plugin antum tidak akan pernah bisa diaktifkan di dalam sistem WP dan tidak akan pernah bisa berjalan.

Nah, berikut format header yang antum perlukan:
<?php

/**

* Plugin Name: Nama plugin antum, ingat... harus unik.

* Plugin URI: http://URI_dari_halaman_online_yang_mendeskripsikan_plugin_antum_dan_updatenya

* Description: Deskripsi yang jelas tentang plugin antum.

* Version: Nomer versi dari plugin. Contoh: 1.0.0

* Author: Nama pembuat plugin.

* Author URI: http://URI_dari_pembuat_plugin

* Text Domain: Opsional. Domain dari teks plugin yang berguna untuk pengaturan bahasa lokal. Contoh: mydomaintext

* Domain Path: Opsional. Alamat direktori relatif dari plugin antum berdasar file-file .mo. Contoh: /locale/

* Network: Opsional. Apakah plugin antum hanya bisa diaktifkan seluas jaringan. Contoh: true

* License: Singkatan jenis lisensi. Contoh: GPL2

*/

Informasi minimum yang dibutuhkan WP untuk mengenali plugin antum adalah baris Plugin Name (nama plugin). Adapun informasi-informasi yang lain (jika ada) akan digunakan untuk membuat tabel daftar plugin di layar manajemen plugin. Yang jelas, urutan baris-baris di atas tidak terlalu penting karena WP bisa mengenali baris per barisnya dengan baik.

Perlu diingat untuk pengembangan plugin di masa yang akan datang bahwa WP mempunyai mekanisme penawaran upgrade plugin berdasar nomer versi (Version) yang dibacanya dari informasi header file PHP antum. Nah, jika antum berencana membuat suatu plugin yang secara rutin akan dikembangkan lebih lanjut menjadi versi yang semakin komplit, maka sebaiknya antum menggunakan format versi yang sama dari satu nomer versi ke nomer versi berikutnya. Contoh: versi x.x atau x.x.x atau xx.xx.xxx.

Hal ini akan membantu WP mengenali apakah plugin yang sudah terinstal dalam sistem adalah versi yang paling mutakhir sehingga tidak perlu penawaran upgrade, ataukah versi yang sudah usang yang perlu diperbaharui sehingga WP bisa menawarkan upgrade dari repositori plugin WordPress resminya secara online dan langsung.

Baris Text Domain adalah informasi opsional yang harus berisi tanda pengenal unik untuk terjemahan dan selalunya sama dengan yang digunakan di load_plugin_textdomain().

Baris Domain Path juga opsional. Tentukan alamat direktori yang diperlukan jika terjemahan-terjemahan plugin antum berada di direktori di luar direktori asal plugin antum Contoh: jika file-file .mo terletak di direktori locale, maka Domain Path yang diperlukan adalah /locale/ dan harus mempunyai tanda slash (/) yang pertama. Jika Domain Path ini tidak disebutkan dalam header, maka direktori yang digunakan adalah direktori plugin itu sendiri.

Baris Network juga opsional. Sebutkan true untuk menetapkan bahwa plugin antum diaktifkan melalui seluruh website di dalam suatu instalasi WP. Hal ini untuk mencegah aktifasi terbatas hanya kepada salah satu website sementara pilihan Multisite (banyak website) sedang aktif. Antum tidak perlu menambahkan baris ini jika plugin antum bisa diaktifkan pada mode network-wide (seluas jaringan) dan mode single site (website tunggal).

Baris License tidak akan dibaca oleh WordPress, tapi yang dimaksudkan dari baris ini hanyalah untuk menjelaskan secara eksplisit tentang lisensi dari kode-kode plugin antum. Intinya, License adalah pengenal pendek yang sudah biasa digunakan dalam industri pembuatan software untuk menjelaskan lisensi yang digunakan oleh plugin.

Catatan:

File PHP untuk License harus menggunakan UTF-8.

Pembuatan file License

Antum bebas mengikuti header standar dari WP yang berisi informasi tentang lisensi yang digunakan plugin antum. Kebanyakan plugin-plugin yang dikembangkan orang menggunakan lisensi GPL2 yang juga digunakan oleh WP atau boleh juga antum menggunakan lisensi yang setara dengan GPL2.

Untuk menentukan bahwa plugin antum menggunakan lisensi GPL2, masukkan baris-baris berikut di dalam awal tiap file dari plugin antum:
<?php

/*  Copyright YEAR  PLUGIN_AUTHOR_NAME  (email : PLUGIN AUTHOR EMAIL)



This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License, version 2, as

published by the Free Software Foundation.



This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

GNU General Public License for more details.



You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

*/

Untuk menentukan bahwa plugin antum menggunakan lisensi komersil, antum bisa pelajari link berikut: http://en.wikipedia.org/wiki/List_of_software_licenses

Terjemahannya? Yup, untuk sementara antum pake Google Translate dulu yah... hehehe.

Baik, kita sambung di bagian ketiga Insya Allah. Mudah-mudahan tidak disibukkan oleh banyak hal (Iya lah, ana juga punya anak istri yang harus dinafkahi, hehehe...).

No comments:

Post a Comment

Terbaru

recentposts

Sementara Itu

randomposts