Artikel ini masih lanjutan dari artikel Membuat Custom Post Meta dengan CMB2. Selain bisa digunakan untuk membuat Custom Meta Box, CMB2 juga dapat digunakan untuk membuat sebuah Web Option.

Sebenarnya, WordPress punya fitur yang lebih keren yaitu Customizer. Tapi CMB2 ini adalah cara termudah dan tercepat dibandingkan dengan Customizer.

Langsung saja kita buat Web Option nya.

01. Membuat Menu Admin “Web Options”
Untuk membuat menu Admin nya, buka file “functions.php” dan ketik kode berikut.

function app_web_options() {
  $cmb = new_cmb2_box(array(
    'id'           => 'web-options',
    'title'        => 'Web Options',
    'object_types' => array('options-page'),
    'option_key'   => 'web-options'
  ));
  $cmb->add_field(array(
    'id'   => 'owner_name',
    'name' => 'Owner Name',
    'type' => 'text'
  ));
}
add_action('cmb2_admin_init', 'app_web_options');

Dengan kode tersebut, kita membuat sebuah menu baru di halaman Admin dengan nama “Web Options” yang akan digunakan untuk mengkonfigurasi Nama Owner yang nanti nya akan ditampilkan di halaman Home atau Front-End.

Jika menu nya di klik, akan tampil seperti berikut.

Silahkan diisi apa saja untuk ditampilkan di halaman Home atau Front-End.

02. Menampilkan Option di Halaman Home atau Front-End
Untuk menampilkan nya cukup mudah. Caranya buka file “index.php” atau file lainnya dimana option tersebut akan ditampilkan. Lalu ketik kode berikut.

// "web-options" adalah option key nya.
$web_options = get_option('web-options');
echo $web_options['owner_name'];

// atau bisa membuatkan nilai default untuk data options nya
// untuk menghindari error
$web_options = get_option('web-options');
$web_options = wp_parse_args($web_options, array(
  'owner_name' => ''
));

Bagaimana, mudah kan ya? Dibandingkan dengan fitur Customizer yang memerlukan beberapa step untuk membuatnya, dengan plugin CMB2 cukup dengan 2 step di atas saja.

Cukup sampai sini dulu artikel kali ini. Semoga bermanfaat.

Untuk tipe input lainnya, sama seperti artikel sebelumnya, bisa dilihat pada link berikut.
https://cmb2.io/docs/field-types