How to Install WordPress 5.0 in Raspberry Pi

WordPress 5.0 (or to be exact when this article is published, WordPress 5.0.2) is released as new major version with some big changes like the default editor and new concept for frontend interface of WordPress.

On this tutorial, we will install WordPress 5.0 in Raspberry Pi. I’m using Raspbian as the default operating system for my Raspberry Pi. Make sure, your raspberry pi internet connection is working and FAST. Heuheu

First, you need to update and upgrade to the latest repository and software available by this command:

sudo apt-get update
sudo apt-get upgrade

then we will install the database server with this command:

sudo apt-get install mariadb-server mariadb-client

make sure you remember the root password you’re type in on those wizard. connect to MySQL/MariaDB server with:

mysql -u root -p

create a new database and setup new user:

create database wordpress;

#then

create user 'wordpress'@'localhost' identified by 'password';

#setup the privileges

grant all privileges on 'wordpress'.* to 'wordpress'@'localhost';

#flush
flush privileges;

Next step, installing Webserver and PHP by using this command:

sudo apt-get install apache2 libapache2-mod-php5 php5 php5-cli php5-mysqli php5-mbstring php5-gd php5-mcrypt php5-json

test your brand new installed webserver by looking into web browser and pointing out to : http://localhost/

Download the latest WordPress available on https://wordpress.org/download/ and extract it to ‘/var/www/html’

tar -xzvf wordpress.tar.gz -C /var/www/html

and refresh your http://localhost/ URL in your browser, the WordPress installer should be loaded.

Install wordpress, like usual. Write your database username, database password, database name and write your Blog Title.

Membuat Plugin WordPress: Link Online Shop Tambahan di WooCommerce





Pada Seri Tutorial WordPress kali ini kita akan membuat plugin kecil yang menambah fungsionalitas WooCommerce dengan link ke Produk yang sama di Online Shop.

Apa itu Woocommerce?

Woocomerce adalah plugin untuk membuat website e-commerce di WordPress. Woocommerce sendiri adalah salah satu dari plugin WordPress terbaik saat ini, khususnya dibidang e-Commerce, bahkan tidak kurang lebih dari sepertiga website e-commerce dunia menggunakan plugin. Tak salah kalau ada yang menempatkan dia dalam 14 plugin wordpress terbaik tahun 2018. Dan membuat Automattic, Inc perusahaan dibalik WordPress, membelinya dari sebuah perusahaan di Selandia Baru tahun 2015 yang lalu.

Meskipun demikian, Woocommerce juga tidak selalu memenuhi kebutuhan usernya secara penuh. Adakalanya ada fitur tambahan yang butuh ditambahkan atau bahkan ada fitur yang harus dihilangkan/dikurangi.

Pada tutorial kali ini, kita akan membuat Woocommerce lebih baik lagi dengan menambahkan link tiap produk yang kita jual di Marketplace. Jadi, pembeli yang datang ke website berbasis woocommerce bisa memilih, beli via website kita, atau beli lewat marketplace, misalnya Tokopedia, Bukalapak, Shopee dll.

Contohnya lihat laman ini:

Tutorial Membuat Plugin WordPress untuk WooCommerce

Pertama, bikin identitas plugin:

<?php
/*
Plugin Name: WooCommerce Indonesian Olshop Link
Plugin URI: http://sisteminformasi.biz
Description: Indonesian Online Shop Link for WooCommerce, additional link
to Add to Chart, like 'Beli di Tokopedia'
Author: SistemInformasi.biz
Version: 0.1
Author URI: http://shop.sisteminformasi.biz/product/woocommerce-olshop-link
 */

Kemudian bikin script pluginnya sesuai contoh. Disini, saya buat plugin ini memakai konsep OOP. Jadi bisa diperluas lagi jika diperlukan.

Contoh sederhana, jika ingin menambahkan Link tertentu di bawah Tombol Beli seperti diatas:

add_action( 'woocommerce_after_add_to_cart_button', array(&$this, 'content_after_addtocart_button') );

function content_after_addtocart_button() {
        global $post;
        echo '

Atau Silakan Beli via Online Shop Berikut:
';

        echo '<a href="http://tokopedia.com/ppppp/ujicoba" class="btn btn-tokopedia"><img src="'.plugin_dir_url(__FILE__).'icon/tokopedia.png" class="img-icon"/> Klik untuk Beli di Tokopedia</a>

';

Untuk ikon sendiri, silakan cari di Google Images “tokopedia icon” lalu simpan ke folder icon pada satu folder dengan file plugin ini.

Silakan coba aktifkan plugin ini. Dan lihat hasilnya.

Untuk versi lengkap silakan coba tuliskan seperti berikut:

Bikin Skeleton Class nya dulu:

Class Sibiz_Olshop
{
    public function __construct()
    {
    }

    function content_after_addtocart_button() 
    {
    }

    function custom_tab( $tabs )
    {
    }

    function custom_tab_panel()
    {
    }

    function save_linkolshop_option_fields()
    {
    }

}

$Sibiz_Olshop = new Sibiz_Olshop();

Lalu lanjutkan dengan masing-masing code sehingga jadi utuh sbb:

<?php
/*
Plugin Name: WooCommerce Indonesian Olshop Link
Plugin URI: http://sisteminformasi.biz
Description: Indonesian Online Shop Link for WooCommerce, additional link
to Add to Chart, like 'Beli di Tokopedia'
Author: SistemInformasi.biz
Version: 0.1
Author URI: http://shop.sisteminformasi.biz/product/woocommerce-olshop-link
 */

Class Sibiz_Olshop
{
    public function __construct()
    {
        add_action( 'woocommerce_after_add_to_cart_button', array(&$this, 'content_after_addtocart_button') );
        add_filter( 'woocommerce_product_data_tabs', array(&$this,'custom_tab') );
        add_action( 'woocommerce_product_data_panels', array(&$this,'custom_tab_panel') );
        add_action( 'woocommerce_process_product_meta_simple', array(&$this,'save_linkolshop_option_fields')  );
        add_action( 'woocommerce_process_product_meta_variable', array(&$this,'save_linkolshop_option_fields')  );
    }

    function content_after_addtocart_button() {
        global $post;
        echo '

Atau Silakan Beli via Online Shop Berikut:
';  

        $tokopedia  = get_post_meta($post->ID,'link_tokopedia',true);
        $bukalapak  = get_post_meta($post->ID,'link_bukalapak',true);
        $shopee     = get_post_meta($post->ID,'link_shopee',true);
        $instagram  = get_post_meta($post->ID,'link_instagram',true);

        if(!empty($tokopedia))
        {
            echo '<a href="'.$tokopedia.'" class="btn btn-tokopedia"><img src="'.plugin_dir_url(__FILE__).'icon/tokopedia.png" class="img-icon"/> Klik untuk Beli di Tokopedia</a>

';
        }

        if(!empty($bukalapak))
        {
            echo '<a href="'.$bukalapak.'" class="btn btn-bukalapak"><img src="'.plugin_dir_url(__FILE__).'icon/bukalapak.png" class="img-icon"/> Klik untuk Beli di Bukalapak</a>

';
        }
        
        if(!empty($shopee))
        {
            echo '<a href="'.$shopee.'" class="btn btn-shopee"><img src="'.plugin_dir_url(__FILE__).'icon/shopee.png" class="img-icon"/> Klik untuk Beli di Shopee</a>

';
        }

        if(!empty($instagram))
        {
            echo '<a href="'.$instagram.'" class="btn btn-instagram"><img src="'.plugin_dir_url(__FILE__).'icon/instagram.png" class="img-icon"/> Klik untuk Beli di Instagram</a>';
        }

        echo '
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%3E%0A%20%20%20%20%20%20%20%20.btn-shopee%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23F2D3C9%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20350px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20.btn-tokopedia%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23D1EDD2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20350px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20.btn-bukalapak%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23EDBBC9%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20350px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20.btn-instagram%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23D9D9D9%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20350px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20.img-icon%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A%2030px%20!important%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />

';
    }
    
    function custom_tab( $tabs ) {
        $tabs['custom_tab'] = array(
            'label'  => __( 'Link Olshop', 'sibiz_link_olshop' ),
            'target' => 'link_olshop_panel',
            'class'  => array(),
        );
        
        return $tabs;
    }

    function custom_tab_panel() {
        ?>
        
<div id="link_olshop_panel" class="panel woocommerce_options_panel">
          
<div class="options_group">
            <?php woocommerce_wp_text_input( array( 'id' => 'link_tokopedia',
                        'label' => __( 'Link Tokopedia', 'textdomain' ),
                    )
                );
            
            woocommerce_wp_text_input( 
                array(
                        'id' => 'link_bukalapak',
                        'label' => __( 'Link Bukalapak', 'textdomain' ),
                    )
                );
            
            woocommerce_wp_text_input( 
            array(
                    'id' => 'link_shopee',
                    'label' => __( 'Link Shopee', 'textdomain' ),
                )
            );

            woocommerce_wp_text_input( 
                array(
                        'id' => 'link_instagram',
                        'label' => __( 'Link Instagram', 'textdomain' ),
                    )
                );
            ?>
          </div>

        </div>

      <?php
    }

    function save_linkolshop_option_fields( $post_id ) {
        
        if ( isset( $_POST['link_tokopedia'] ) ) :
            update_post_meta( $post_id, 'link_tokopedia', $_POST['link_tokopedia'] );
        endif;

        if ( isset( $_POST['link_bukalapak'] ) ) :
            update_post_meta( $post_id, 'link_bukalapak', $_POST['link_bukalapak'] );
        endif;

        if ( isset( $_POST['link_shopee'] ) ) :
            update_post_meta( $post_id, 'link_shopee', $_POST['link_shopee'] );
        endif;

        if ( isset( $_POST['link_instagram'] ) ) :
            update_post_meta( $post_id, 'link_instagram', $_POST['link_instagram'] );
        endif;
        
    }
    
}

$sibiz_olshop = new Sibiz_Olshop();

Hasilnya di Panel Admin:

Silakan dicoba….



Simple Automated WordPress Deployment Tool with Wordmove





Deploying WordPress site from local server to upstream can be stressful. Especially when you’re battling with local article, specific permalink etc etc. Of course you can use Jenskins, Beanstalk, Deploy and any automation tool you like.

On this article we will focusing on simple yet powerful deployment tool, Wordmove. Wordmove is basically just a simple Ruby package that can help you fast and easy enough to deploy WordPress website. As declared in their Github Repo, Wordmove is just like a ‘Capistrano for WordPress‘.

Continue reading Simple Automated WordPress Deployment Tool with Wordmove



Tutorial WordPress: Memperkaya Editor Bawaan WordPress





Adanya editor bawaan WordPress untuk themes dan plugin memang cukup membantu untuk debugging yang buru-buru. Namun, editor built-in WordPress dari tahun ke tahun begitu saja, tidak pernah dikembangkan lebih serius lagi.

Nah, berikut adalah tutorial memperkaya editor bawaan wordpress dengan plugin-plugin yang membuat tampilannya layaknya IDE di desktop kita. Berikut adalah plugin-plugin yang bisa kita pakai: Continue reading Tutorial WordPress: Memperkaya Editor Bawaan WordPress



Tutorial WordPress: Cara Mengaktifkan Pagination Link sebelum Plugin Lain





Tutorial singkat ini akan memandu kamu untuk mengaktifkan pagination link (halaman 1,2 dst) pada sebuah post di WordPress sebelum plugin apapun.

Masalah yang saya hadapi ini mungkin bisa menjadi inspirasi kamu. Themes pada emka.web.id ini mendukung fitur

<!--nextpage-->

. Akan tetapi, letaknya terlalu jauh dari content. Letak yang terlalu jauh sangat mungkin membuat pembaca web tidak tahu jika ada halaman lanjutan dari halaman yang dia baca.

Inilah cara yang bisa kamu pakai: Continue reading Tutorial WordPress: Cara Mengaktifkan Pagination Link sebelum Plugin Lain



How to Fix Pagination on WordPress Custom Loops





So you have added a custom or secondary query to a template file and you get something strange on their pagination? Maybe this solution is solving your problem.

By default, in any given context, WordPress uses the main query to determine pagination. The main query object is stored in the $wp_query global, which is also used to output the main query loop: Continue reading How to Fix Pagination on WordPress Custom Loops



Tutorial WordPress: Aktivasi JetPack Protect, Proteksi Anti Brute-force Gratis





Agustus 2014 yang lalu, Automattic selaku pemilik dan pengembang WordPress melakukan akuisisi kepada Parka LLC. Parka LLC membuat security tool BruteProtect untuk WordPress kini sukses mengintegrasikannya ke Plugin Jetpack.

Modul baru dari plugin plat merah WordPress ini akan memproteksi website berbasis WordPress terhadap percobaan serangan brute force sekaligus memeriksa website dari kode jahat yang mungkin ada. Modul Jetpack ini sekaligus memberikan rangkaian whitelist IP Address yang boleh melakukan Login.

 



Tutorial WordPress: Optimasi dengan WP Optimize





WordPress memang CMS yang cepat dan tepat digunakan untuk kebutuhan bloggin. Namun, seiring waktu pemakaian, software WordPress yang kita pakai juga butuh untuk di servis.

Berikut adalah langkah yang bisa kita lakukan untuk mengoptimasi website yang menggunakan CMS WordPress. Tool yang digunakan adalah plugin WP-Optimize. Continue reading Tutorial WordPress: Optimasi dengan WP Optimize



Tutorial WordPress: Memotong Kata Pendek dalam URL





Bagi yang belajar SEO WordPress, tentunya mengerti akan manfaat menggunakan kata-kata yang mudah diingat dan mudah dicari, serta menghindari kata-kata yang umum dan pendek. Lalu bagaimana jika web-mu masih memasukkan kata-kata pendek seperti dan, yang, di dan lain-lainya pada slug URL? Ikuti tutorial berikut:

1. Buka file functions.php pada Themes aktif anda:
2. Tambahkan filter untuk menghilangkan 3 karakter dalam slug, Tuliskan source code berikut: Continue reading Tutorial WordPress: Memotong Kata Pendek dalam URL



Tutorial WordPress: Menambahkan Tipe File Baru (Mimetypes) di Fitur Upload





Mime types yang didukung WordPress untuk sementara ini hanyalah tipe file gambar dan dokumen, untuk tipe-tipe lain fasilitas menambahkan tipe file baru pada saat mengupload file baru memang hanya tersedia saat WordPress disulap menjadi multiuser. Untuk itulah kita harus menambahkan sendiri tipe file tersebut, baik dengan plugin atau script langsung.

Untuk menambahkan dengan script berikut: Continue reading Tutorial WordPress: Menambahkan Tipe File Baru (Mimetypes) di Fitur Upload



Tutorial WordPress: Menambahkan Tombol Google +1





Untuk menambahkan link ataupun widget Google+ (+1) pada tiap post, silakan buka file functions.php pada themes kamu dan tulis:

add_filter('the_content', 'wpr_google_plusone');
function wpr_google_plusone($content) {
	$content = $content.'<div class="plusone"><g:plusone size="tall" href="'.get_permalink().'"></g:plusone></div>';
	return $content;
}
add_action ('wp_enqueue_scripts','wpr_google_plusone_script');
function wpr_google_plusone_script() {
	wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null);
}




Tutorial WordPress: Switching Themes Otomatis untuk Browser Mobile





Menurut hasil analisis Google Analytics, situs kami setidaknya diakses paling banyak dengan 3 browser: Mozilla Firefox, Google Chrome dan Opera Mini/Mobile. Tentunya dengan analisis ini, bisa diperkirakan bahwa pembaca blog ini tersebar pada dua platform, Desktop dan Handset/Mobile.

Kebetulan sekali, themes yang dipakai oleh blog ini belum secara otomatis berubah dan sesuai dengan layar kecil perangkat Mobile. Inilah yang harus diantisipasi oleh pengelola situs, supaya pembaca nyaman membaca blog/situsnya berlama-lama. Pada situs berbasis WordPress, kita bisa memanfaatkan plugin-plugin untuk mengubah themes situs secara otomatis khusus perangkat mobile. Continue reading Tutorial WordPress: Switching Themes Otomatis untuk Browser Mobile



Tutorial Yii: Integrasi Yii Framework dengan WordPress





Yii yang tenar sebagai framework pengembangan aplikasi web dengan konsep MVC dan WordPress sebagai sebuah framework CMS/Blogging terpopuler ternyata bisa disatukan. Contoh kasus, misalnya WordPress digunakan sebagai frontpage sebuah Sistem Informasi, dan aplikasi berbasis Yii untuk menangani berbagai kebutuhan sistem informasi. Aplikasi Yii tersebut dikembangkan sebagai plugin WordPress, dan cukup menangani kebutuhan khusus saja, untuk urusan penerbitan konten, berita, user dan lain-lain serahkan saja pada core milik WordPress.

Setelah mencari dan memahami beberapa referensi yang saya dapat, berikut langkah untuk mengintegrasikan aplikasi Yii ke dalam WordPress sebagai sebuah plugin. Continue reading Tutorial Yii: Integrasi Yii Framework dengan WordPress



Tutorial WordPress: Menampilkan Daftar Tags





Sampai saat ini belum ada fungsi wp_list_tags, yang saya perkirakan telah ada untuk mendapatkan daftar atau list tags yang pernah dibuat pada blog berbasis WordPress. Kalau belum ada, kita buat.. 😀

Berikut solusi menampilkan daftar tags yang saya tawarkan:

<?php
$tags = get_tags( array('orderby' => 'count', 'order' => 'DESC','number'=>'25') );
echo '<ul>';
foreach ( (array) $tags as $tag ) {
echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . ' (' . $tag->count . ') </a></li>';
}
echo '</ul>';
?>

Continue reading Tutorial WordPress: Menampilkan Daftar Tags