105 lines
3.9 KiB
PHP
105 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* File ini menangani dukungan tema (Theme Support) dan antrean aset (CSS/JS).
|
|
*/
|
|
|
|
// 1. PENGATURAN DASAR
|
|
function edukarsa_setup() {
|
|
add_theme_support( 'title-tag' );
|
|
add_theme_support( 'post-thumbnails' );
|
|
add_theme_support( 'responsive-embeds' );
|
|
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script' ) );
|
|
add_post_type_support( 'page', 'excerpt' );
|
|
|
|
register_nav_menus( array(
|
|
'menu-utama' => __( 'Menu Utama', 'edukarsa' ),
|
|
'menu-footer' => __( 'Menu Footer', 'edukarsa' ),
|
|
) );
|
|
}
|
|
add_action( 'after_setup_theme', 'edukarsa_setup' );
|
|
|
|
// 2. MENGHUBUNGKAN ASET (CSS & JS FRONTEND)
|
|
function edukarsa_scripts() {
|
|
$font_choice = get_option( 'edukarsa_font_choice', 'plus_jakarta_sans' );
|
|
$font_url = '';
|
|
$font_family = "'Plus Jakarta Sans', system-ui, sans-serif";
|
|
|
|
switch ( $font_choice ) {
|
|
case 'inter':
|
|
$font_url = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap';
|
|
$font_family = "'Inter', system-ui, sans-serif";
|
|
break;
|
|
case 'poppins':
|
|
$font_url = 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap';
|
|
$font_family = "'Poppins', system-ui, sans-serif";
|
|
break;
|
|
case 'roboto':
|
|
$font_url = 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;900&display=swap';
|
|
$font_family = "'Roboto', system-ui, sans-serif";
|
|
break;
|
|
case 'system':
|
|
$font_url = '';
|
|
$font_family = "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
|
|
break;
|
|
case 'plus_jakarta_sans':
|
|
default:
|
|
$font_url = 'https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap';
|
|
$font_family = "'Plus Jakarta Sans', system-ui, sans-serif";
|
|
break;
|
|
}
|
|
|
|
$deps = array();
|
|
if ( ! empty( $font_url ) ) {
|
|
wp_enqueue_style( 'edukarsa-dynamic-font', $font_url, array(), null );
|
|
$deps[] = 'edukarsa-dynamic-font';
|
|
}
|
|
|
|
// Load file style.css utama
|
|
wp_enqueue_style(
|
|
'edukarsa-style',
|
|
get_template_directory_uri() . '/style.css',
|
|
$deps,
|
|
time(),
|
|
'all'
|
|
);
|
|
|
|
// Ambil opsi skema warna dari database
|
|
$primary_color = sanitize_hex_color( get_option( 'edukarsa_primary_color', '#0b4a8e' ) );
|
|
$secondary_color = sanitize_hex_color( get_option( 'edukarsa_secondary_color', '#1a73e8' ) );
|
|
$heading_color = sanitize_hex_color( get_option( 'edukarsa_heading_color', '#0f172a' ) );
|
|
|
|
// Injeksi CSS variables dinamis langsung ke selector :root
|
|
$custom_css = "
|
|
:root {
|
|
--primary-color: {$primary_color};
|
|
--secondary-color: {$secondary_color};
|
|
--heading-color: {$heading_color};
|
|
--font-main: {$font_family};
|
|
}
|
|
";
|
|
wp_add_inline_style( 'edukarsa-style', $custom_css );
|
|
}
|
|
add_action( 'wp_enqueue_scripts', 'edukarsa_scripts' );
|
|
|
|
// 3. MEMUAT JAVASCRIPT UNTUK MEDIA UPLOADER (DASHBOARD)
|
|
function edukarsa_admin_scripts( $hook ) {
|
|
if ( strpos( $hook, 'edukarsa' ) !== false ) {
|
|
wp_enqueue_media();
|
|
}
|
|
}
|
|
add_action( 'admin_enqueue_scripts', 'edukarsa_admin_scripts' );
|
|
|
|
// 4. REGISTRASI AREA WIDGET SIDEBAR
|
|
function edukarsa_widgets_init() {
|
|
register_sidebar( array(
|
|
'name' => __( 'Sidebar Artikel', 'edukarsa' ),
|
|
'id' => 'sidebar-artikel',
|
|
'description' => __( 'Area widget untuk halaman single berita/artikel.', 'edukarsa' ),
|
|
'before_widget' => '<div id="%1$s" class="card-style sidebar-widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h3 class="sidebar-widget-title">',
|
|
'after_title' => '</h3>',
|
|
) );
|
|
}
|
|
add_action( 'widgets_init', 'edukarsa_widgets_init' );
|