Tuesday, 26 July 2016

Wordpress: Asas Bina Plugin -Activation/Desactivation

Asas Pembinaan Plugin Wordpress 3. 


Activation / Deactivation Hooks

rujukan: 

Hook ini akan mempersiapkan jalan untuk melaksanakan "actions" bilamana plugin diaktifkan atau dinyahaktifkan.

Plugin boleh melaksanakan proses instalasi seperti biasa bilamana mereka diaktifkan untuk:

  1. menambah permisi (add rewrite rules)
  2. menambah table database kustom (add custom database tables),
  3.  atau set nilai default (set default option values). 
Parameter pertama setiap function-function ini akan merujuk kepada fail plugin yg utama di dalam header plugin.  Kebiasaannya, 2 functions ini akan dipicu (trigger) daripada plugin fail utama. Walau bagaimana pun, jika sekiranya functions ini dipindahkan ke dalam fail lain, kita perlu update/kemaskini parameter pertama untuk memperbetulkan point/jalan ke fail utama. 

One of the most common uses for an activation hook is to refresh WordPress permalinks when a plugin registers a custom post type. This gets rid of the nasty 404 errors. Let’s look at an example of how to do this:

Tetapi, dalam prosess nyahaktif hook, kadang-kala akan konfius dengan prosess membuang hook (uninstall) hook. Nyahaktif hook paling baik digunakan untuk memhilangkan/membuang data sementara seperti memori caches dan directori sementara.

Untuk setup activation hook, gunakan function register_activation_hook():
register_activation_hook( __FILE__, 'pluginprefix_function_to_run' )

Untuk nyahaktifkan hook, gunakan function register_deactivation_hook():
register_deactivation_hook( __FILE__, 'pluginprefix_function_to_run' );


Share:

Wordpress: Asas Bina Plugin -Hook

Asas Pembinaan Plugin Wordpress 2. 



Apa dia? register_activation_hook adalah fuction yg akan berjalan/aktif apabila plugin diaktifkan. 
Apabila sesuatu plugin diaktifkan, hook "active_NAMAPLUGIN" akan dipanggil (baca: digunakan). 

NAMAPLUGIN akan digantikan oleh nama hook plugin tersebut, yg akan dimulakan dengan *active, termasuklah subdirektorinya. 


Contoh, jika asalnya plugin tersebut seperti ini (Plugin Yg Ada Byk Fail):
/wp-content/plugin/sampleplugin/sample.php
Apabila diaktifkan, ia akan berubah menjadi:
/wp-content/plugin/active_sampleplugin/sample.php 
Jika plugin tersebut hanya ada 1 fail.
/wp-content/plugin/sample.php
Apabila diaktifkan, ia akan berubah menjadi:
/wp-content/plugin/active_sample.php

Share:

Wordpress: Asas Bina Plugin -Header


Asas Pembinaan Plugin Wordpress 1.




Rujukan:
https://www.airpair.com/wordpress/posts/developing-wordpress-plugin-from-scratch
https://developer.wordpress.org/plugins/

Plugin WP disimpan di dalam direktori berikut: /wp-content/plugins/
Sama ada disimpan di dalam 1 fail  PHP atau pun pelbagai fail yg mengandungi fail PHP, CSS, JS, HTML dan sebagainya.

Untuk tutorial ini kita akan menulis plugin bernama wp-simple. Buatkan 1 fail yg bernama wp-simple.php.
Struktur plugin kita adalah seperti berikut:

/wp-content/plugins/wp-simple/wp-simple.php


Header

Buka fail wp-simple.php yg telah dibuat sebentar tadi dan tulis koding berikut.

<?php
/*
  Plugin Name: Simple -Contoh mudah plugin wordpress. 
  Plugin URI: http://wp-analytify.com/
  Description: Deskripsi Plugin
  Version: 1.0
  Author: Nama Penulis Plugin
  Author URI: http://facebook.com/ex001slvr
  License: GPLv2+
  Text Domain: wp-simple
*/
?>

Keperluan


  1. Plugin Name: Nama plugin yg akan ada di dalam panel Admin. Supaya admin mudah  untuk pilih plugin.
  2. Plugin URI: Link kepada homepage plugin. Perlu unik. Boleh jadi plugin ini adalah website sendiri. 
  3. Description: Deskripsi pendek kepada plugin. Akan di display dalam Dashboard Admin. Deskripsi <140 patah perkataan. 
  4. Version: Versi plugin
  5. Author: Nama penulis plugin. 
  6. Author URI: URI profil penulis plugin. 
  7. License: Lesen plugin. Sila rujuk guideline Wordpress. 
  8. License URI: Link kepada lesen tersebut.
  9. Text Domain: Rujuk "How to Internationalize your Plugin Text Domain".
  10. Domain Path: Rujuk "How to Internationalize your Plugin Domain Path".









Share: