Filter Font Options

fontoptions” class=”mkdocs-anchor” aria-hidden=”true”># Filter Font Options (madoptionsfontoptions)

MadOptions tidak melakukan hardcode pada daftar font mana pun. Seluruh pilihan jenis huruf dalam dropdown field typography diambil melalui WordPress filter madoptionsfontoptions.

Hal ini memberikan kebebasan penuh bagi tema atau plugin untuk menyuntikkan font lokal, font sistem, maupun katalog Google Fonts yang didukung.


Nilai Default Bawaan

Jika tidak ada filter yang dipasang oleh tema atau plugin, MadOptions menyediakan opsi fallback dasar:

  • Default / Theme Font (Nilai string kosong '')
  • Inherit
  • — Generic — (Divider)
  • Sans-Serif
  • Serif
  • Monospace

Mengganti Daftar Font Secara Total

Gunakan fungsi filter untuk mengganti seluruh daftar font dengan koleksi tema Anda:

PHP
add_filter( 'madoptions_font_options', function( $defaults ) {
    return array(
        ''           => 'Default / Font Bawaan Tema',
        'my-font'    => 'My Brand Font — Local Woff2',
        'inter'      => 'Inter — Google Fonts',
        'roboto'     => 'Roboto — Google Fonts',
        'system'     => 'System UI Font Stack',
    );
} );

Menambahkan Font Tanpa Menghapus Default

Jika Anda hanya ingin menyisipkan font baru ke dalam daftar yang sudah ada:

PHP
add_filter( 'madoptions_font_options', function( $fonts ) {
    $fonts['playfair-display'] = 'Playfair Display (Serif Elegan)';
    return $fonts;
} );

Format Array & Divider Grup

Array font mendukung divider visual untuk mengelompokkan jenis font berdasarkan sumber:

Format Entry Perilaku UI
'slug-font' => 'Nama Tampilan Font' Opsi yang dapat dipilih
'— Label Header —' => array() Divider / judul grup non-selectable

Contoh Struktur Lengkap:

PHP
add_filter( 'madoptions_font_options', function( $defaults ) {
    return array(
        ''                             => 'Default / Theme Font',
        '— Font Lokal (Woff2) —'       => array(),   // ← Header divider
        'brand-serif'                  => 'Brand Serif — Local',
        'brand-sans'                   => 'Brand Sans — Local',
        '— Google Fonts Populer —'     => array(),   // ← Header divider
        'inter'                        => 'Inter',
        'open-sans'                    => 'Open Sans',
        'plus-jakarta-sans'            => 'Plus Jakarta Sans',
        '— System Stack —'             => array(),   // ← Header divider
        'system'                       => 'System Font (-apple-system, Segoe UI)',
    );
} );

Catatan Penting untuk Developer Tema

IMPORTANT

Nilai yang disimpan ke database adalah slug (kunci array, misal: plus-jakarta-sans), bukan deklarasi CSS font-family.
Tema bertanggung jawab untuk memetakan slug tersebut menjadi CSS font-family: 'Plus Jakarta Sans', sans-serif; atau memuat stylesheet font yang bersangkutan saat merender halaman front-end (seperti yang dilakukan modul inc/font-map.php di Tema Xionic).