Membangun Web Application dengan WordPress

WordPress bagi saya pribadi adalah sebuah Web Development Tool untuk membangun website atau aplikasi berbasis web. Jika Anda tertarik membuat web application berbasis WP, silahkan lanjutkan membaca artikel ini.

Ada beberapa hal yang membuat WordPress layak menjadi "Base Framework" untuk membangun sebuah web application. Berikut ini adalah hal-hal yang menurut saya dapat dijadikan referensi bagi Anda yang ingin terjun ke dunia WordPress Development.

User Management

Dalam membangun aplikasi berbasis web, peran WordPress yang paling besar adalah dalam hal user management (user, login, role dan aktivitas lainnya seperti lupa password dan logout). Dengan menggunakan fitur ini, saya sebagai developer hanya perlu membuat interface pada front end aplikasi saya.

URL Rewriting

Aplikasi web modern sebagian besar menerapkan pretty url, dalam hal ini WordPress memiliki fungsi internal untuk menerapkan fitur ini. Selain itu, URL Rewriting juga dapat digunakan sebagai custom end point untuk REST API.

Berikut adalah contoh kode untuk membuat custom URL pada WordPress

Sehingga kita dapat membuat struktur URL seperti berikut pada aplikasi.

Templating

Sebagian besar pengguna WordPress pasti cukup memahami penggunaan theme dan/atau page builder. Untuk efektifitas dan efisiensi biaya (dan waktu pengembangan), saya menggunakan Theme WP yang sudah tersedia (baik free atau premium).

Syarat utama theme yang dapat dijadikan template untuk aplikasi berbasis web (untuk kebutuhan saya) adalah theme yang memiliki sidebar menu seperti Themify Ultra.

Setting halaman yang dijadikan main layout untuk aplikasi

Prototyping

Sebelum membuat tabel-tabel (untuk kebutuhan data master dan data transaksi) pada database, saya biasanya membuat abstraksi datanya dalam bentuk custom post type dan custom fields.

Dengan demikian saya dapat menampilkan secara visual input-input yang diperlukan, dan jika perlu penambahan atau pengurangan field, saya tinggal menyesuaikan saja sesuai kebutuhan.

Untuk keperluan ini plugin CPT UI dan Advanced Custom Fields (ACF) Pro sangat saya butuhkan untuk mempercepat proses (terutama dalam hal mengurangi hand coding). Selain ACF Pro, ada banyak plugin untuk membuat custom fields baik yang gratis maupun yang berbayar.

Abstraksi data menggunakan custom post type
Pembuatan field input secara visual dengan ACF Pro

Database Handling

Penggunaan CPT UI & ACF Pro memungkinkan kita menyimpan data-data input tanpa koding, namun hal ini sangat tidak disarankan untuk aplikasi berbasis web yang memiliki banyak data. Saya tetap menggunakan custom table untuk menyimpan data pada MySQL.

Penggunaan custom table juga sangat bermanfaat pada saat reporting, terutama dalam hal fungsi aggregate ( SUM, COUNT, dst )

Untuk membuat custom table, WordPress sudah menyediakan fungsi dbDelta untuk membuat tabel on the fly yang dapat Anda panggil ketika plugin diaktivasi.

Contoh penggunaan fungsi dbDelta

Untuk menyimpan data ke tabel, WordPress juga sudah menyiapkan fungsi-fungsi terkait penggunaan basic CRUD. Berikut adalah contoh penerapannya.

Frontend Development

Bagi saya salah satu PR besar dalam membangun aplikasi berbasis web adalah membuat frontend untuk end-user (admin sistem dan pegawai/pengguna aplikasi selain admin). Halaman wp-admin hanya saya berikan kepada user developer untuk melakukan pengaturan-pengaturan terkait aplikasi dan WordPress.

Dalam beberapa kasus, saya melakukan hand coding sendiri untuk menampilkan datatable, membuat form-form atau menampilkan laporan. Namun untuk mempercepat proses pengembangan saya juga menggunakan plugin WP Datatables dan Advanced Forms Pro.

Plugin Advanced Form Pro menggunakan field-field yang sudah dibuat pada ACF

Fungsi-fungsi Lainnya

Selain fungsi-fungsi diatas, ada banyak hal lain yang dapat ditangani oleh WordPress untuk kebutuhan sistem Anda. Contoh yang paling sering digunakan ada mail sending, menu system dan fungsi utama WP yaitu modul Content Management System (CMS) untuk membuat post dan page.

Basic Page/Post mungkin akan sangat membantu dalam membuat dokumentasi, menampilkan informasi atau menampilkan Report yang dibuat dengan WP Datatables.

Tools diluar WordPress

WordPress dibangun menggunakan bahasa pemrograman PHP, dengan demikian kita dapat menggunakan library-library lain yang juga ditulis menggunakan PHP seperti mPDF untuk generate file PDF atau PhpSpreadsheet untuk manipulasi file spreadsheet (misal Excel).

Untuk mengintegrasikan library-library pihak ketiga, saya menggunakan Composer sebagai tool untuk dependency manager. Contoh penggunaan Composer pada WordPress silahkan cek tutorial ini.

Selain library PHP, WordPress juga menggunakan library-library javascript seperti jQuery & jQuery UI, underscore.js dan backbone.js. Anda dapat memanfaatkannya untuk frontend development tanpa harus meng-include-kannya pada custom theme/plugin.

Package manager untuk front end development (seperti Grunt, Gulp atau Bower) juga dapat Anda gunakan pada custom theme/plugin.

Apakah Anda tertarik untuk membangun sistem informasi berbasis WordPress ?

Happy WordPressing 🙂

4.1 15 votes
Article Rating
Subscribe
Notify of
guest
10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Anton Toni Agung
Anton Toni Agung
3 years ago

Mantap

Angga
Angga
3 years ago

Itu code2nya di taro di mana om??

Imam Suharjo
Imam Suharjo
3 years ago

Menarik sekali, cms WP umur lama bnget dan awet, sy hny pengguna cms saja sejak lama dimanjakan oleh plugin2 saja. Perlu explore lbh dalam seprtinya jk mau custome.

wahyudi
wahyudi
3 years ago

om, untuk mengcustom admin agar tidak identitas wordpressnya apakah ada pluginnya, atau full main di frontend/theme?

adm
adm
2 years ago
Reply to  wahyudi

pakai wp-security

Hilfan
Hilfan
8 months ago

apakah bisa bantu custom wordpress multisite?

envelope-otagscalendarwhatsapp
10
0
Would love your thoughts, please comment.x
()
x