Loading...
Seri Belajar WordPress - Membuat Tema Dari Awal

Belajar Membuat Tema WordPress dari Awal

Assalamualaikum, kita jumpa lagi di artikel ke-2 Seri Belajar WordPress. Kali ini kita akan Belajar Membuat Tema WordPress dari Awal. Tema WordPress yang akan kita buat adalah tema blog standar, tidak ada fitur-fitur kompleks yang menyulitkan bagi pemula.

Agar tampilan tema “lumayan” rapi dan cantik, kita akan menggunakan Framework CSS Bootstrap. Kalau anda belum familiar dengan bootstrap, bisa belajar di website W3C School: https://www.w3schools.com/.

Persiapan Sebelum Meng-Koding

Sebelum mulai mengetik kode-kode, kita persiapkan dulu alat-alat tempur yang harus dimiliki seorang WordPress Developer.

  • Code (Teks) Editor
    Terserah mau pakai notepad++, VSCode, SublimeText atau yang lain.
  • Browser dengan plugin web developer terinstall/aktif.
    Saya menggunakan Firefox. Favorit saya sejak zaman baheula.
  • Instalasi WordPress
    Jika belum, silahkan menyelesaikan Bagian 1 Seri Belajar WordPress. Pengenalan dan Instalasi WordPress.
  • Kode sumber Bootstrap.
    Download di https://getbootstrap.com. Pada artikel ini saya menggunakan versi 4 yang terakhir.

Struktur Tema WordPress

Tema WordPress terdiri dari minimal 2 (dua) file utama, style.css dan index.php. Kedua file itu diletakkan ke dalam folder sesuai dengan nama tema.

Karena kita menggunakan bootstrap, kita akan membuat 2 folder tambahan (opsional) di dalam folder tema, folder css untuk file bootstrap.min.css dan js untuk file bootstrap.min.js. Folder inc gunanya untuk meletakkan library tambahan (wordpress-bootstrap-4-pagination.php), misalnya di tema ini kita menggunakan library pagination dari github, misalnya: https://github.com/renzramos/wordpress-bootstrap-4-pagination.

Seri Belajar WordPress - Membuat Tema Dari Awal - Struktur Folder

File-file lainnya dibuat sesuai kebutuhan anda menurut hirarki tema WordPress (https://developer.wordpress.org/themes/basics/template-hierarchy/).

Membuat Halaman Depan

Halaman depan akan menampilkan ringkasan blog post dengan menampilkan judul blog post, potongan isi (excerpt), informasi (meta) tulisan seperti: penulis, tanggal penulisan dan kategori tulisan.

Membuat File style.css

File style.css penting adanya, tanpa ada file tersebut, tema anda tidak akan dikenali oleh WordPress dan dinyatakan “broken”. File style.css juga digunakan untuk menulis kode CSS untuk mempercantik tema anda.

File style.css mengandung informasi tema, contohnya:

/*
Theme Name: Belajar WP
Theme URI: https://lombokmedia.web.id/
Description: Belajar membuat tema WordPress
Author: Amrin Zulkarnain
Author URI: http://amrinz.wordpress.com
Version: 1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lombokmedia
*/

Selain lisensi dan text domain, informasi lain sudah jelas sesuai namanya. Lisensi tema tidak bisa dirubah, karena ini keharusan dari pihak WordPress. Bagian text domain untuk keperluan terjemahan, jika tema anda mendukung.

Membuat File functions.php

Untuk pagination, kita menambahkan kode berikut di dalam file functions.php

<?php
include_once(‘inc/wordpress-bootstrap-4-pagination.php’);

dan menambahkan fitur tema (theme supports)

add_theme_support( 'title-tag' );

Untuk menampilkan judul halaman secara otomatis tanpa menambahkannya secara manual di <head>.

Kita juga akan menggunakan kode berikut untuk me-load file css dan js yang sudah kita siapkan secara otomatis, tanpa manual menuliskannya di file index.php

//Load some scripts and styles
function lmd_scripts_styles() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', get_template_directory_uri() . '/js/jquery-3.5.1.min.js');
wp_enqueue_script( 'jquery' );

wp_enqueue_script('bt_js', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '4.5.2', true );

//CSS
wp_enqueue_style('bt_css', get_template_directory_uri() . '/css/bootstrap.min.css', false ,'4.5.2');
wp_enqueue_style('style_css', get_stylesheet_directory_uri() . '/style.css');
}
add_action('wp_enqueue_scripts', 'lmd_scripts_styles');

Selanjutnya kita menggunakan kode berikut untuk mengaktifkan fitur widget

if ( function_exists('register_sidebar') )
{ 
register_sidebar(array(
'name' => __( 'Sidebar', 'lombokmedia' ),
'id' => 'sidebar',
'before_widget' => '<div class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title h4"><span>',
'after_title' => '</span></h2>',
));
}

Membuat File index.php

Dalam hirarki tema WordPress, file index.php menjadi fallback (pengganti) jika tema diatasnya tidak ada. Misalnya ketika anda meminta halaman (page), tetapi file template (page.php) tidak ada, maka WordPress akan menampilkan halaman menggunakan file template index.php.

Secara tradisional, visual layout tema terdiri dari beberapa bagian, header, utama, sidebar dan footer. Seperti gambar dibawah.

Seri Belajar WordPress - Membuat Tema Dari Awal - Struktur Tema

Membuat Header

Buat file baru dengan nama header.php, isi dengan kode berikut:

<!doctype html>
<html <?php language_attributes(); ?>>
<head>
<meta <?php bloginfo( 'charset' ); ?>>
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">

<link rel="icon" type="image/x-icon" href="<?php echo get_template_directory_uri().'/favicon.ico'; ?>" />

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->

<?php wp_head(); ?>

</head>
<body <?php body_class(); ?> id="lmd-body">

<div class="header">
<div class="container">
<h1><a href="<?php echo home_url(); ?>"><?php echo get_bloginfo('name'); ?></a></h1>
<p><?php echo get_bloginfo('description'); ?></p>
<hr>
</div>
</div>

Di dalam file index.php, kita akan memanggilnya dengan menulis get_header().

Di kode diatas kita menggunakan beberapa tag kode yang hanya dipakai WordPress, penjelasannya sebagai berikut:

  • get_template_directory_uri()
    Menghasilkan alamat direktori tema dalam bentuk yang dikenali browser, misalnya: http://localhost/wp-content/themes/belajarwp/
  • wp_head()
    Menghasilkan informasi diantara tag HTML <head> dan </head> seperti <title>, <link> css, <meta>, dll.
  • body_class()
    Menghasilkan class CSS yang bisa digunakan untuk mengatur style spesifik per-halaman.
  • home_url()
    Menghasilkan alamat utama website, dalam hal ini http://localhost
  • get_bloginfo(‘name’) dan get_bloginfo(‘description’)
    Menghasilkan nama dan deskripsi website sesuai di Dashboard > Settings > General Options

Membuat Bagian Utama Excerpt (Ringkasan) Blog

<section class="lmd-main">
<div class="container">

<section class="row">

<main class="col-lg-8 lmd-content">

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?> role="article">

<h2 class="post-title"><a href="<?php the_permalink(); ?>" title="Continue reading <?php the_title(); ?>"><?php the_title(); ?></a></h2>

<ul class="list-inline post-meta">
<li class="list-inline-item post-author">By&nbsp;&nbsp;<?php the_author_posts_link(); ?></li>
<li class="list-inline-item post-date"><?php the_time( get_option( 'date_format' ) ); ?></li>
<li class="list-inline-item post-category"><?php the_category(' '); ?></li>
</ul>

<section class="post-body">
<?php the_excerpt(); ?>
</section>

</article> 

<?php endwhile;

wp_boostrap_4_pagination();

else:

echo 'belum ada artikel';

endif; ?>

</main>

<?php get_sidebar(); ?>

</section><!--/row-->

</div><!--/container-->
</section><!--/lmd main-->

Disini kita menggunakan WordPress Loop, gunanya untuk menampilkan blog post dari database. Untuk lebih jelasnya, silahkan membaca https://developer.wordpress.org/themes/basics/the-loop/

Tag WordPress yang kita gunakan di snippet kode diatas adalah

  • the_permalink()
    untuk menampilkan link detail blog post
  • the_title()
    menampilkan judul blog post
  • the_time( get_option( ‘date_format’ ) )
    menampilkan tanggal tulisan dalam format yang diatur di settings
  • the_author_posts_link()
    menampilkan nama penulis
  • the_category(‘ ‘)
    menampilkan kategori blog post
  • the_excerpt()
    menampilkan paragrap ringkasan tulisan (excerpt)
  • get_sidebar()
    memanggil file sidebar.php

Membuat Sidebar

Buat file baru dengan nama sidebar.php, isi dengan kode:

<aside class="col-lg-4 lmd-sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar') ) : ?>
<p><a href="<?php echo home_url(); ?>/wp-admin/widgets.php">Add New Widget</a></p>
<?php endif; ?>
</aside>

fungsinya adalah untuk menampilkan widget. Dengan widget kita bisa menampilkan halaman, kategori, post terbaru dan lain-lain

Membuat Footer

File footer di artikel ini hanya menampilkan hak cipta dan tahun, sangat sederhana, di dalam file index.php, kita akan memanggilnya dengan menulis get_footer().

<footer class="lmd-footer">
<div class="container">

<hr>
<p class="copyright">Copyright &copy; <?php echo date('Y'); ?> . <?php bloginfo('name'); ?> . All rights reserved</p>

</div><!--/container-->
</footer><!--/section-->

<?php wp_footer(); ?>

</body>
</html>

Kode File index.php Selengkapnya

Selengkapnya, isi file index.php

<?php get_header(); ?>

<section class=”lmd-main”>
<div class=”container”>

<section class=”row”>

<main class=”col-lg-8 lmd-content”>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<article id=”post-<?php the_ID(); ?>” <?php post_class(); ?> role=”article”>

<h2 class=”post-title”><a href=”<?php the_permalink(); ?>” title=”Continue reading <?php the_title(); ?>”><?php the_title(); ?></a></h2>

<ul class=”list-inline post-meta”>
<li class=”list-inline-item post-author”>By&nbsp;&nbsp;<?php the_author_posts_link(); ?></li>
<li class=”list-inline-item post-date”><?php the_time( get_option( ‘date_format’ ) ); ?></li>
<li class=”list-inline-item post-category”><?php the_category(‘ ‘); ?></li>
</ul>

<section class=”post-body”>
<?php the_excerpt(); ?>
</section>

</article>

<?php endwhile;

wp_boostrap_4_pagination();

else:

echo ‘belum ada artikel’;

endif; ?>

</main>

<?php get_sidebar(); ?>

</section><!–/row–>

</div><!–/container–>
</section><!–/lmd main–>

<?php get_footer(); ?>

Setelah ini, tema sudah siap diaktifkan. Arahkan browser anda ke http://localhost/wp-admin/themes.php.

Kode sumber file artikel kali ini bisa di download di https://github.com/amrinz/Seri-Belajar-WordPresshttps://github.com/amrinz/Seri-Belajar-WordPress/blob/main/belajarwp-v1.zip

Selanjutnya, kita akan membuat halaman untuk membaca blog post secara detil. Baca artikel selanjutnya di Membuat Halaman Blog Post *.

*) Belum siap …

About LombokMedia

Sejak 2006 melayani Jasa Pembuatan Website, Pembuatan dan Kustomisasi Tema WordPress, Jasa Optimasi SEO dan Web Hosting di Mataram Lombok

Alamat

Lombok Media
Jln Nurul Iman Gang 6 No 2
Lingk Bugis – Bintaro
Ampenan – Kota Mataram – Lombok

Jam Buka
Senin-Sabtu 08.00 – 16.00 WITA
Minggu dan Hari Besar – Libur


Hubungi Kami