Setup APC (Alternative PHP Cache) pada Server Shared Hosting

Jika Anda menggunakan Server Shared Hosting sebagai penyedia hosting Anda, dan lebih khusus, menggunakan layanan shared hosting mereka, Anda mungkin memperhatikan bahwa kinerja PHP kurang dari ideal. Dalam kasus ini, server share hosting memungkinkan untuk melakukan installasi dan konfigurasi APC (Alternative PHP Cache).

Sebelum kita mulai, perlu diketahui bahwa untuk proses ini ada beberapa syarat fasilitas/ akses/ fitur yang harus mendukung untuk menyelesaikan instalasi:

Anda harus punya account untuk masuk server
Server mendukung untuk akses shell
Sebuah domain menjalankan PHP 5.3 pada FastCGI
Sebuah terminal / shell aplikasi untuk terhubung ke account Anda melalui SSH

Untuk memulainya Anda harus melakukan beberapa tahap installasi seperti yang ada dibawah ini.
Ini adalah langkah-langkah untuk menginstal dan mengkonfigurasi APC

# Arahkan ke direktori home Anda (harus sudah berada di sana, tetapi hanya dalam kasus ini)
cd ~/

# Buat folder untuk men-download versi stabil terbaru dari APC
mkdir download
cd download

# Download versi terbaru dari APC (3.1.9 pada posting ini) http://pecl.php.net/package/APC
wget http://pecl.php.net/get/APC-3.1.9.tgz

# Uraikan tarbal download dan menavigasi ke dalamnya:
tar xvf APC-3.1.9.tgz
cd APC-3.1.9

# phpize the source
/usr/local/php53/bin/phpize

# configure and make the source
./configure --with-php-config=/usr/local/php53/bin/php-config; make

# Membuat direktori untuk menyalin modul
mkdir -p ~/.php/modules

# Menyalin modul dikompilasi
cp modules/apc.so ~/.php/modules/apc.so

# Create a directory for a custom php config
mkdir -p ~/.php/5.3
# Add the module to the custom PHP config
echo extension = ~/.php/modules/apc.so >> ~/.php/5.3/phprc
# Open phprc for editing (be sure to hit enter if the following command doesn't run)
nano ~/.php/5.3/phprc

Sisipkan berikut ini setelah baris ekstensi (pastikan untuk mengedit apc.filters dengan path ke webroot Anda):

[APC]
extension = apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 32M
apc.optimization = 0
apc.num_files_hint = 512
apc.user_entries_hint = 1024
apc.ttl = 0
apc.user_ttl = 0
apc.gc_ttl = 600
apc.cache_by_default = 0
apc.filters = "-/home/yourusername/yourwebsite.com/apc\.php$"
apc.slam_defense = 0
apc.use_request_time = 1
apc.mmap_file_mask = /tmp/apc-accountname.XXXXXX
;OR apc.mmap_file_mask = /dev/zero
apc.file_update_protection = 2
apc.enable_cli = 0
apc.max_file_size = 2M
apc.stat = 1
apc.write_lock = 1
apc.report_autofilter = 0
apc.include_once_override = 0
apc.rfc1867 = 0
apc.rfc1867_prefix = "upload_"
apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
apc.rfc1867_freq = 0
apc.localcache = 1
apc.localcache.size = 512
apc.coredump_unmap = 0
apc.stat_ctime = 0


Tekan Ctrl+O untuk menyimpan hasil editan file tersebut, Ctrl+X untuk keluar dari Nano Edit

Copy apc.php pada home root pada website Anda taruh sebagai berikut:
cp ~/download/APC-3.1.9/apc.php ~/yourwebsite.com/apc.php


Buka top:
top


Setelah atas terbuka, periksa untuk melihat apakah proses php53.cgi (atau serupa) sedang berjalan, jika sedang berjalan, Anda harus membunuh prosesnya. Tekan "q" untuk keluar proses diatas, kemudian jalankan perintah berikut:



killall php53.cgi


Jalankan perintah itu beberapa kali sampai Anda menerima pesan “php53.cgi: no process found”.

Selanjutnya arahkan ke yourwebsite.com /apc.php untuk melihat status APC:


Idealnya, fragmentasi Anda harusnya di bawah 50%.

Jika semuanya terlihat baik, hapus file apc.php dari situs Anda:
rm ~/yourwebsite.com/apc.php


Done!

Ada banyak manfaat untuk menggunakan APC, terutama ketika Anda menggunakannya bersama dengan aplikasi seperti WordPress.

Review Theme Davinci Gallery Beta I

Untuk pembuatan dan pengembangan themes gallery yang diberi nama dengan Davinci Gallery sampai sekarang memasuki tahap Beta I. Themes yang berfungsi sebagai review karya maupun produk sudah bisa digunakan dan akan disempurnakan lagi kedepan dengan tambahan beberapa fitur dan fasilitas kedalamnya menyesuaikan update perkembangan. Berikut tampilan beberapa halaman berikut dengan fitur dan penjelasan fungsi di dalamnya:

Halaman Home

Desain pada home page berikut didesain dengan pola type gallery, yaitu menampilkan semua post dari semua user pada frontend berupa image dan diberi sedikit fungsi hover untuk penjelasan dari posting tersebut berupa berapa banyak dilihat dan seberapa banyak posting pada user tersebut. Pada bawahnya merupakan Profile User pada posting, Hari tanggal bulan dan jam, serta untuk bawahnya menampilkan harga, apbila posting yang bersangkut merupakan posting produk atau karya yang ingin dijual. Ditambah dengan tombol social network dan tombol like pada sisi paling kiri pada kolom paling bawah sendiri pada post tersebut, agar para pengujung/ pembaca bisa memberikan apresiasi pada posting yang bersangkutan.


Halaman Default/  Template Full width


Halaman ini merupakan halaman yang menggunakan template full width, dan perbedaan dengan default page hanya pada sisi fasilitas menampilkan sisi sidebar pada halaman tersebut. Pada halaman ini fungsi komentar dihilangkan karena bersifat statis dan hanya digunakan untuk memasang informasi statis saja/ yang tidak banyak mengalami perubahan.

Halaman Single Post


Pada halaman detail posting menampilkan beberapa fungsi yaitu menampilkan image/ avatar penulis/ user, view post counter, like post counter, full image post, contact and addres, price, descriptions post, button share social network (facebook,twitter, googleplus), related post, dan yang terakhir comment form. Pada sisi kanan merupakan default sidebar sebagai desain default pada tiap halaman.

Halaman Arsip/ Archive


Untuk halaman arsip/ category menampilkan semua postingan pada category post dan arsip post pada tiap tahun. Didesain dengan tampilan sederhana melampirkan thumbnail image post dan deskripsi yang dibatasi karakter katanya.

Halaman Author/ User


Secara umum desain halaman Author/ User mengambil fungsi dari tampilan halaman Arsip/ Archive, hanya ditambahkan sedikit pengaturan untuk menampilkan deskripsi profile penulis dan ditambahkan akun tombol yang lain seperti website, facebook, twitter, googleplus dari si Author/ User yang bersangkutan. Pada bawahnya berupa list semua posting dari user tersebut, dengan desain seperti pada Archive/ Arsip.

Halaman Register


Halaman Register dan Login pada dasarnya sama, menyesuaikan sesuai dengan fungsi daripada form login dan register. Untuk tampilan halaman ini menggunakan desain layout fullwidth dan sedikit tambahan alternative berupa link login / register melalui aku social network yang dimiliki calon user, diantaranya menggunakan akun pada facebook, twitter, dan googleplus.

Halaman Login

Desain halaman dan fungsi hampir sama dengan halaman yang dijumpai pada halaman register, cukup sederhana dan komunikatif.

Halaman Searching


Berfungsi untuk menampilkan semua posting yang dicari oleh pembaca/ user public, dan desain tampilan berupa list semua posting yang terkait dengan kata kunci yang digunakan dalam proses pencarian.


Halaman Not Found/ 404


Halaman ini merupakan halaman default pada halaman not found, halaman yang ketika dicari tidak ditemukan akan secara otomatis memanggil halaman ini. Desain cukup sederhana dengan menampilkan desain gambar dan dibawahnya form searching.

Multiple excerpt lengths post in wordpress

Pada umumnya fungsi yang dipakai untuk pembatasan pada tampilan isi text dengan mengatur pada code di functions.php pada perintah script seperti dibawah sebagai contoh pada umumnya.

function twentyten_excerpt_length( $length ) {
    return 15;
}
add_filter( 'excerpt_length', 'twentyten_excerpt_length' );


Namu posting ini sedikit memberi panduan tentang hal tersebut sesuai dengan keinginan kita mau setting berapa banyak kata yang dibatasi pada isi text posting pada wordpress. Tetap menggunakan cara yang sama dengan mengedit dan penambahan code script pada functions.php namun dengan modif sebagai berikut, copy code yang ada dibawah untuk Anda letakkan ke functions.php

function excerpt($limit) {
      $excerpt = explode(' ', get_the_excerpt(), $limit);
      if (count($excerpt)>=$limit) {
        array_pop($excerpt);
        $excerpt = implode(" ",$excerpt).'...';
      } else {
        $excerpt = implode(" ",$excerpt);
      } 
      $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
      return $excerpt;
    }

    function content($limit) {
      $content = explode(' ', get_the_content(), $limit);
      if (count($content)>=$limit) {
        array_pop($content);
        $content = implode(" ",$content).'...';
      } else {
        $content = implode(" ",$content);
      } 
      $content = preg_replace('/\[.+\]/','', $content);
      $content = apply_filters('the_content', $content); 
      $content = str_replace(']]>', ']]>', $content);
      return $content;
    }


Dan untuk membuat tampilan dari hasil code diatas yang ada pada functions.php cukup letakkan code dibawah ke file yang Anda inginkan.

<?php echo excerpt(25); ?>


Angka 25 merupakan pembatasan karakter perkata pada posting yang Anda publih di Post Wordpress.
Untuk mengetahui lebih lanjut dan penjelasan secara detail Anda bisa mengujungi website dibawah ini sebagai sumbernya:

http://bavotasan.com/tutorials/limiting-the-number-of-words-in-your-excerpt-or-content-in-wordpress/
http://stackoverflow.com/questions/4082662/multiple-excerpt-lengths-in-wordpress

Rough Design Gallery - Themes Galeri Greenboxindonesia

Konsep desain galeri untuk website baru kami dengan tajuk uji coba pertama "Pasar Besar" masih dalam tahap proses terus dikembangkan hingga sampai sekarang. Berikut beberapa screenshot interface dari hasil pengembangan sementara kami.


Screenshot diatas merupakan interface pada home page website, yang menitik tekankan menampilkan postingan dari author/ penulis yang update terbaru berikut dengan tampilan avatar user dan tanggal update ketika posting diterbitkan.

Pada dasarnya tampilan pada home page ini merupakan ringkasan posting dari berbagai update daripada user di kemas dengan tampilan desain galeri yang terdiri dari jejeran image-image dalam bentuk persegi. Sekaligus memungkinkan bagi seorang pembaca untuk langsung share ke social network dengan pilihan default facebook, twitter, dan google plus. Untuk semua postingan yang diterbitkan tanpa melampirkan image didalam postingan tersebut ketika diterbitkan akan menampilkan "no-image" dengan tampilan default image bawaan themes tersebut, namun hal ini tidak disarankan untuk semua pengguna/ penulis terdaftar dalam website ketika mereka menerbitkan postingan tersebut dalam website kami.

Wordpress Meta Box - Add Extra Input Fields in Posts

Posting berikut pengembangan untuk penambahan fitur untuk menambahkan meta box sendiri tanpa menggunakan plugin, dengan beberapa script yang ditambahkan pada file themes yang akan dipakai. Disini merupakan solusi untuk menambahkan form Meta Box pada Dashboard Add Post dengan input data custom (sesuai yang diinginkan), dengan contoh Penambahan Form Text untuk input text Harga.



Untuk memulainya Anda bisa mengedit file functions.php pada themes bawaan yang akan dipakai untuk pembuatan website. Tambahkan script yang ada dibawah ini:

add_action( 'add_meta_boxes', 'price_meta_box_add' );  
function price_meta_box_add() {  
    add_meta_box( 'price-meta-box-id', 'Put Price Here!', 'price_meta_box_cb', 'post', 'side', 'high' );  
}  
function price_meta_box_cb() {
    wp_nonce_field( basename( __FILE__ ), 'price_meta_box_nonce' );
    $value = get_post_meta(get_the_ID(), 'price_key', true);
    $html = '<label>Price: </label><input type="text" name="price" value="'.$value.'"/>';
    echo $html;
}
add_action( 'save_post', 'price_meta_box_save' );  
function price_meta_box_save( $post_id ){   
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; 
    if ( !isset( $_POST['price_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['price_meta_box_nonce'], basename( __FILE__ ) ) ) return;
    if( !current_user_can( 'edit_post' ) ) return;  
    if( isset( $_POST['price'] ) )  
        update_post_meta( $post_id, 'price_key', esc_attr( $_POST['price'], $allowed ) );
}

Selanjutnya untuk menampilkan hasil dari script diatas Anda cukup meletakkan script yang ada dibawah ini pada file index.php, single.php, dan file yang lain, yang ingin Anda tampilkan pada halaman tersebut. (single.php, index.php, archive.php - ini hanya contoh semata)
<?php get_post_meta(get_the_ID(), 'price_key', true); ?>



Anda bisa check hasil dari penambahan script diatas setelah Anda input text yang Anda inginkan untuk ditampilkan pada frontend website.

Pemeliharaan Jaringan - Perbaikan Router redundansi dan Pemeliharaan Data Center

Penjadwalan Maintenance Server secara keseluruhan di Hari Senin 14 Oktober mulai pukul 22:00 , kami akan melakukan pemeliharaan untuk membangun kembali redundansi , yang dipengaruhi oleh kegagalan hardware pekan lalu . Selama perawatan ini kami mengharapkan untuk Anda untuk menunggu minimal 30 detik untuk proses loading, mungkin akan terlihat lama dalam proses loading karena kami sedang melakukan maintenance pada server.

Tahapan maintenance setelah pemeliharaan router selesai , asumsi sekitar pukul 12 tengah malam , pusat data kami akan melakukan pemeliharaan dan kemudian yang lain . Pemeliharaan ini mirip dengan pemeliharaan hari Kamis , yang berhasil diselesaikan dalam sekitar 30 menit . Dalam proses ini kami tidak sendiri, kami dibantu dengan tim lain yang bertugas dan memastikan semuanya bisa berjalan lancar , karena hal ini pemeliharaan data center tidak mempengaruhi jaringan kami . Pemeliharaan data center ini diharapkan tidak berdampak pada layanan yang kami tawarkan .

Selama proses maintenance berjalan, kami mengharapkan pemakluman apabila terjadi kelambatan proses yang berdampak langsung terhadap layanan yang kami berikan. Kami akan mengupayakan semuanya akan kembali semula setelah beberapa hari kedepan setelah proses maintenance ini selesai.

Membuat Form tambahan Link Social Network (facebook,twitter,googleplus) pada user profile

Code berikut yang ada dibawah ini merupakan salah satu cara menambahkan link social network pada profile penulis (author) pada website yang berplatform cms wordpress tanpa menggunakan plugin dengan menambahkan pada file function.php di file bawaan themes yang diaktifkan.



Anda bisa meletakkan script dibawah pada file function.php bawaan themes yang diaktifkan pada baris paling akhir, atau Anda bisa menyesuaikan sendiri sesuai dengan configurasi pada themes yang sedang Anda gunakan saat ini.

// add custom link social network for author
function my_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter (Di isi lengkap ex.http://twitter.com/greenbox_id)';
//add Facebook
$contactmethods['facebook'] = 'Facebook (Di isi lengkap ex.http://facebook.com/greenbox_id)';
//Add Google Plus
$contactmethods['googleplus'] = 'Google Plus (Di isi lengkap ex.https://plus.google.com/107140746007374507315)';

return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);
// end off top scripth

Untuk menampilkan code script diatas letakkan script dibawah ini pada halaman yang ingin anda inginkan, yang pada umumnya diletakkan pada author.php

// add custom link social network for author
<div class="link-social-penulis">
        <div class="social-author-link">
        <a href="<?php echo $curauth->user_url; ?>" target="_blank">Website</a>
        </div>
<div class="social-author-facebook">
        <a href="<?php echo $curauth->facebook; ?>" target="_blank">Facebook</a>
        </div>
        <div class="social-author-twitter">
<a href="<?php echo $curauth->twitter; ?>" target="_blank">Twitter</a>
        </div>
        <div class="social-author-googleplus">
<a href="<?php echo $curauth->googleplus; ?>" target="_blank">Google Plus</a>
        </div>
</div>

Pada proses pengisian form alamat social network di author profile/ penulis pada backend, settingan bawaan haru menggunakan url lengkap dengan http:// atau www. sesuai dengan link masing-masing author/ penulis tersebut.

Membuat otomatis install plugin pada themes wordpress

Dalam pengembangan fungsi website terutama pada website yang berplatform cms wordpress tidak lepas dari peran fungsi daripada modul/ plugin, untuk membuat fungsi tambahan sesuai yang diinginkan pastinya. Memang ketika menggunakan cms wordpress dalam konstruksi sebuah website kita dipermudahkan dengan sistem bawaanya yang sudah terintegrasi dengan repository developer wordpress secara langsung/ otomatis, salah satu contohnya yaitu fitur didalamnya dalam bentuk plugin. Namun terkadang ketika kita membuat sistem baru tidak jarang kalau kita akan mengedit ulang plugin tersebut sesuai dengan keinginan kita. Disini akan dijelaskan untuk mensetting sebuah themes yang kita setting sendiri untuk mengharuskan install plugin dari bawaan themes tersebut secara otomatis dengan mengambil plugin yang sudah disiapkan dalam folder themes tersebut. Secara teknis ketika kita mengaktifkan/ upload themes yang sudah kita setting tersebut akan ada notice/ pemberitahuan untuk mengharuskan install plugin yang sifatnya bisa kita setting sendiri, baik itu berupa anjuran/ rekomendasi atau plugin yang harus diinstall kalau sifatnya primer kebutuhan themes tersebut.


Diatas merupakan salah satu contoh gambaran yang sudah selesai tahap pengembangan pada themes yang disetting dengan default plugin bawaannya.

Untuk memulainya, pada bawaan themes yang sudah ada Anda tinggal meletakkan code scripth yang ada seperti pada dibawah ini ke file function.php pada themes.

//requery plugin on themes //
/**
 * This file represents an example of the code that themes would use to register
 * the required plugins.
 *
 * It is expected that theme authors would copy and paste this code into their
 * functions.php file, and amend to suit.
 *
 * @package    TGM-Plugin-Activation
 * @subpackage Example
 * @version    2.3.6
 * @author    Thomas Griffin 
 * @author    Gary Jones 
 * @copyright  Copyright (c) 2012, Thomas Griffin
 * @license    http://opensource.org/licenses/gpl-2.0.php GPL v2 or later
 * @link       https://github.com/thomasgriffin/TGM-Plugin-Activation
 */

/**
 * Include the TGM_Plugin_Activation class.
 */
require_once dirname( __FILE__ ) . '/gb-plugin-activation.php';

add_action( 'tgmpa_register', 'my_theme_register_required_plugins' );
/**
 * Register the required plugins for this theme.
 *
 * In this example, we register two plugins - one included with the TGMPA library
 * and one from the .org repo.
 *
 * The variable passed to tgmpa_register_plugins() should be an array of plugin
 * arrays.
 *
 * This function is hooked into tgmpa_init, which is fired within the
 * TGM_Plugin_Activation class constructor.
 */
function my_theme_register_required_plugins() {

 /**
  * Array of plugin arrays. Required keys are name and slug.
  * If the source is NOT from the .org repo, then source is also required.
  */
 $plugins = array(

  // This is an example of how to include a plugin pre-packaged with a theme
  array(
   'name'         => 'Nama plugin', // The plugin name
   'slug'         => 'nama plugin', // The plugin slug (typically the folder name)
   'source'       => get_stylesheet_directory() . '/plugins/nama-plugin.zip', // The plugin source
   'required'     => true, // If false, the plugin is only 'recommended' instead of required
   'version'     => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented
   'force_activation'   => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch
   'force_deactivation'  => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins
   'external_url'    => '', // If set, overrides default API URL and points to an external URL
  ),
  
  // This is an example of how to include a plugin from the WordPress Plugin Repository
  array(
   'name'   => 'Wordpress Importer',
   'slug'   => 'wordpress-importer',
   'required'  => false,
  ),

 );

 // Change this to your theme text domain, used for internationalising strings
 $theme_text_domain = 'greenhouse';

 /**
  * Array of configuration settings. Amend each line as needed.
  * If you want the default strings to be available under your own theme domain,
  * leave the strings uncommented.
  * Some of the strings are added into a sprintf, so see the comments at the
  * end of each line for what each argument will be.
  */
 $config = array(
  'domain'         => $theme_text_domain,          // Text domain - likely want to be the same as your theme.
  'default_path'   => '',                          // Default absolute path to pre-packaged plugins
  'parent_menu_slug'  => 'themes.php',     // Default parent menu slug
  'parent_url_slug'  => 'themes.php',     // Default parent URL slug
  'menu'           => 'install-required-plugins',  // Menu slug
  'has_notices'       => true,                        // Show admin notices or not
  'is_automatic'     => false,         // Automatically activate plugins after installation or not
  'message'    => '',       // Message to output right before the plugins table
  'strings'        => array(
   'page_title'                          => __( 'Install Required Plugins', $theme_text_domain ),
   'menu_title'                          => __( 'Install Plugins', $theme_text_domain ),
   'installing'                          => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name
   'oops'                                => __( 'Sesuatu yang tidak beres dengan plugin API.', $theme_text_domain ),
   'notice_can_install_required'        => _n_noop( 'Tema ini membutuhkan plugin berikut: %1$s.', 'Tema ini membutuhkan plugin berikut: %1$s.' ), // %1$s = plugin name(s)
   'notice_can_install_recommended'   => _n_noop( 'Tema ini merekomendasikan plugin berikut: %1$s.', 'Tema ini merekomendasikan plugin berikut: %1$s.' ), // %1$s = plugin name(s)
   'notice_cannot_install'       => _n_noop( 'Maaf, tapi Anda tidak memiliki izin yang benar untuk menginstal plugin %s. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin diinstal.', 'Maaf, tapi Anda tidak memiliki izin yang benar untuk menginstal plugin %s. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin diinstal.' ), // %1$s = plugin name(s)
   'notice_can_activate_required'       => _n_noop( 'Berikut ini plugin yang diperlukan keadaan tidak aktif: %1$s.', 'Berikut ini plugin yang diperlukan keadaan tidak aktif: %1$s.' ), // %1$s = plugin name(s)
   'notice_can_activate_recommended'   => _n_noop( 'Berikut Plugin yang direkomendasikan saat ini tidak aktif: %1$s.', 'Berikut Plugin yang direkomendasikan saat ini tidak aktif: %1$s.' ), // %1$s = plugin name(s)
   'notice_cannot_activate'      => _n_noop( 'Maaf, tapi Anda tidak memiliki izin untuk mengaktifkan plugin %s ini. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin yang akan diaktifkan.', 'Maaf, tapi Anda tidak memiliki izin untuk mengaktifkan plugin %s ini. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin yang akan diaktifkan.' ), // %1$s = plugin name(s)
   'notice_ask_to_update'       => _n_noop( 'Berikut Plugin perlu diperbarui ke versi terbaru untuk memastikan kompatibilitas maksimum dengan tema ini: %1$s.', 'Berikut Plugin perlu diperbarui ke versi terbaru untuk memastikan kompatibilitas maksimum dengan tema ini: %1$s.' ), // %1$s = plugin name(s)
   'notice_cannot_update'       => _n_noop( 'Maaf, tapi Anda tidak memiliki izin untuk memperbarui plugin %s. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin yang akan diperbarui.', 'Maaf, tapi Anda tidak memiliki izin untuk memperbarui plugin %s. Hubungi administrator situs ini untuk mendapatkan bantuan pada plugin yang akan diperbarui.' ), // %1$s = plugin name(s)
   'install_link'           => _n_noop( 'Mulai Menginstal Plugin', 'Mulai Menginstal Plugin' ),
   'activate_link'          => _n_noop( 'Aktifkan Plugin', 'Aktifkan Plugin' ),
   'return'                              => __( 'Kembali ke Installer Plugin yang Diperlukan', $theme_text_domain ),
   'plugin_activated'                    => __( 'Pengaktifan Plugin telah berhasil', $theme_text_domain ),
   'complete'          => __( 'Semua plugin dipasang dan diaktifkan berhasil. %s', $theme_text_domain ), // %1$s = dashboard link
   'nag_type'         => 'updated' // Determines admin notice type - can only be 'updated' or 'error'
  )
 );

 tgmpa( $plugins, $config );

}
//End of top script

Selanjutnya unduh file php ini dan letakkan diluar folder/ directory pada themes, berikutnya Anda tinggal membuat folder plugin isikan file plugin yang sudah disiapkan/ dibutuhkan dan file dalam bentuk .zip (file yang sudah dicompress) sesuai dengan standart file plugin pada wordpress. Apabila plugin yang Anda setting lebih dari satu Anda tinggal edit script diatas dengan cara copy paste edit nama plugin, dan dibawah settingan tersebut ada script tambahan sebagai opsi lain yang load plugin langsung dari directory pengembang wordpress secara langsung.

Untuk lebih lanjut Anda bisa membaca artikel pada alamat ini: Thomas Griffin
dan Untuk update perkembangan tentang code ini bisa ke alamat ini: Github
 
facebook.png twitter.png googleplus.png rss.png