/* ── 17. 통합 페이지 렌더러 (핵심 수정) ─────────── */ add_action('template_redirect', function () { if (is_feed() || is_admin() || wp_doing_ajax()) return; if (!is_single() && !is_home() && !is_front_page() && !is_archive()) return; ob_start('mubers_page_callback'); }, 0); function mubers_page_callback($theme_output) { /* ★ 핵심: $theme_output(테마 HTML)을 버리고 우리 페이지로 교체 ★ */ $s = mubers_get_settings(); $home = home_url('/'); $html = '' . "\n"; $html .= '' . "\n"; $html .= '' . "\n"; $html .= '' . "\n"; $html .= '' . "\n"; /* Title */ if (is_single()) { $html .= '' . esc_html(get_the_title()) . ' - ' . esc_html(get_bloginfo('name')) . '' . "\n"; } elseif (is_category()) { $cat_obj = get_queried_object(); $html .= '' . esc_html($cat_obj->name) . ' - ' . esc_html(get_bloginfo('name')) . '' . "\n"; } else { $html .= '' . esc_html(get_bloginfo('name')) . '' . "\n"; } /* Fonts + Ads + Analytics */ $html .= mubers_font_html() . "\n"; $html .= mubers_head_common() . "\n"; /* CSS */ $html .= '' . "\n"; if (is_single()) { $html .= '' . "\n"; } /* JSON-LD */ if (is_single()) { global $post; if ($post) { $html .= mubers_jsonld_article($post->ID); $cat = mubers_cat($post->ID); $bc = array(array('name' => '홈', 'url' => $home)); if ($cat) $bc[] = array('name' => $cat->name, 'url' => get_category_link($cat->term_id)); $bc[] = array('name' => get_the_title($post->ID), 'url' => get_permalink($post->ID)); $html .= mubers_jsonld_bc($bc); } } $html .= mubers_jsonld_website(); $html .= '' . "\n"; $html .= '' . "\n"; /* 메인 콘텐츠 렌더링 (echo → 버퍼 캡처) */ ob_start(); if (is_single()) { mubers_render_single_post(); } else { mubers_render_home_page(); } $html .= ob_get_clean(); /* 푸터 영역 */ ob_start(); echo mubers_footer_html($s['logo_text'], $s['logo_highlight'], $home); mubers_chat_widget(); echo mubers_footer_cleanup_js(); echo mubers_bottom_banner_js(); echo '
'; echo ''; echo '
'; echo ''; $html .= ob_get_clean(); $html .= ''; return $html; } /* ── 18. Kadence 훅 비활성화 ────────────────────── */ add_action('after_setup_theme', function () { remove_action('wp_head', 'kadence_add_header_toggle_script', 10); remove_action('wp_head', 'kadence_add_main_navigation_js', 10); remove_action('wp_footer', 'kadence_add_scroll_to_top', 10); }, 30); /* ── 19. 단일 글 렌더링 ─────────────────────────── */ function mubers_render_single_post() { global $post; if (!$post) { $post = get_post(get_queried_object_id()); } if (!$post) return; $s = mubers_get_settings(); $home = home_url('/'); $id = $post->ID; $cat = mubers_cat($id); $im = mubers_img($id, $post->post_content); $content = apply_filters('the_content', $post->post_content); $content = mubers_clean_content($content); $content = mubers_insert_content_ads($content); /* Topbar + Nav */ echo mubers_topbar($s['ticker_text']); echo mubers_header_nav($home, $s['logo_text'], $s['logo_highlight'], mubers_get_nav_html($cat ? $cat->term_id : 0), true); /* Reading Progress */ echo '
'; echo ''; echo '
'; /* Breadcrumb */ echo ''; echo '
'; /* Article Head */ echo '
'; echo '

' . esc_html(get_the_title()) . '

'; echo '
'; echo ''; echo '
입력' . get_the_date('Y.m.d H:i') . ''; if (get_the_modified_date('Y.m.d H:i') !== get_the_date('Y.m.d H:i')) { echo ' 수정' . get_the_modified_date('Y.m.d H:i') . ''; } echo ' 📖 ' . mubers_reading_time($post->post_content) . '분 읽기
'; echo '
'; /* Hero Image */ echo '
' . esc_attr(get_the_title()) . '
'; /* Body */ echo '
' . $content . '
'; /* Tags */ $tags = get_the_tags($id); if ($tags) { echo ''; } /* Prev / Next */ $prev = get_previous_post(); $next = get_next_post(); if ($prev || $next) { echo '
'; if ($prev) echo '이전 글' . esc_html($prev->post_title) . ''; else echo '
'; if ($next) echo '다음 글' . esc_html($next->post_title) . ''; else echo '
'; echo '
'; } /* Author Bio */ $author_bio = get_the_author_meta('description', $author_id); if ($author_bio) { echo '
' . mb_substr($author_name, 0, 1) . '
'; echo '

' . esc_html($author_name) . '

' . esc_html($author_bio) . '

'; } /* Ads + Below Article */ echo mubers_bottom_banner_html(); echo mubers_below_article_ads($id); echo mubers_ad_display('grid_mid'); echo '
'; /* .article-main */ /* Sidebar */ echo ''; echo '
'; /* .article-wrap .wrap */ /* View Count */ mubers_defer_view_count($id); } /* ── 20. 홈/카테고리 렌더링 ─────────────────────── */ function mubers_render_home_page() { $s = mubers_get_settings(); $home = home_url('/'); $cat_id = 0; $cat_name = '최신 뉴스'; if (is_category()) { $cat_obj = get_queried_object(); if ($cat_obj) { $cat_id = (int)$cat_obj->term_id; $cat_name = $cat_obj->name; } } echo mubers_topbar($s['ticker_text']); echo mubers_header_nav($home, $s['logo_text'], $s['logo_highlight'], mubers_get_nav_html($cat_id), true); echo '
'; /* Hero Section (홈페이지 첫 페이지만) */ if (!is_category() && !is_paged()) { $hero_q = new WP_Query(array('posts_per_page'=>4,'post_status'=>'publish','orderby'=>'date','order'=>'DESC','no_found_rows'=>true,'update_post_meta_cache'=>false,'update_post_term_cache'=>false)); if ($hero_q->have_posts()) { $posts_arr = array(); while ($hero_q->have_posts()) { $hero_q->the_post(); $posts_arr[] = get_post(); } wp_reset_postdata(); if (!empty($posts_arr)) { $main = $posts_arr[0]; $main_img = mubers_img($main->ID, $main->post_content); $main_cat = mubers_cat($main->ID); echo '
'; echo '' . esc_attr($main->post_title) . ''; echo '
'; if ($main_cat) echo '' . esc_html($main_cat->name) . ''; echo '

' . esc_html($main->post_title) . '

'; echo '

' . esc_html(wp_trim_words(wp_strip_all_tags($main->post_content), 30, '...')) . '

'; echo '' . mubers_time_ago($main->post_date) . ''; echo '
'; for ($hi = 1; $hi < count($posts_arr) && $hi < 4; $hi++) { $sub = $posts_arr[$hi]; $sub_img = mubers_img($sub->ID, $sub->post_content); $sub_cat = mubers_cat($sub->ID); echo '
'; echo '' . esc_attr($sub->post_title) . ''; echo '
'; if ($sub_cat) echo '' . esc_html($sub_cat->name) . ''; echo '

' . esc_html($sub->post_title) . '

'; } echo '
'; } } } /* Card Grid */ echo '
'; echo '

' . esc_html($cat_name) . '

'; echo '
'; $args = array('posts_per_page'=>8,'post_status'=>'publish','orderby'=>'date','order'=>'DESC','no_found_rows'=>true,'update_post_meta_cache'=>false,'update_post_term_cache'=>false); if ($cat_id > 0) $args['cat'] = $cat_id; $q = new WP_Query($args); if ($q->have_posts()) { while ($q->have_posts()) { $q->the_post(); $cid = get_the_ID(); $cc = mubers_cat($cid); $ci = mubers_img($cid, get_the_content()); echo '
' . esc_attr(get_the_title()) . '
'; if ($cc) echo '' . esc_html($cc->name) . ''; echo '

' . esc_html(get_the_title()) . '

'; echo '

' . esc_html(mubers_clean_excerpt(get_the_excerpt())) . '

'; echo '' . mubers_time_ago(get_the_date('Y-m-d H:i:s')) . ' · 조회 ' . number_format((int)get_post_meta($cid, 'post_views_count', true)) . ''; echo '
'; } wp_reset_postdata(); } echo '
'; echo '
'; echo '
불러오는 중...
'; echo '
모든 뉴스를 불러왔습니다
'; /* AJAX Load More */ $nonce = wp_create_nonce('mubers_nonce'); $ajax_url = admin_url('admin-ajax.php'); echo ''; echo '
'; /* .main-content */ /* Sidebar */ echo ''; echo '
'; /* .content .wrap */ } /* ── 21. 관리자 설정 페이지 ──────────────────────── */ add_action('admin_menu', function () { add_options_page('므브스 설정', '므브스 설정', 'manage_options', 'mubers-settings', 'mubers_settings_page'); }); function mubers_settings_page() { if (!current_user_can('manage_options')) return; if (isset($_POST['mubers_save']) && check_admin_referer('mubers_settings_save')) { $opts = array( 'logo_text' => sanitize_text_field($_POST['logo_text']), 'logo_highlight' => sanitize_text_field($_POST['logo_highlight']), 'ticker_text' => sanitize_text_field($_POST['ticker_text']), 'ga_id' => sanitize_text_field($_POST['ga_id']), 'naver_verification' => sanitize_text_field($_POST['naver_verification']), 'google_verification' => sanitize_text_field($_POST['google_verification']), ); update_option('mubers_settings', $opts); mubers_clear_cache(); echo '

설정이 저장되었습니다.

'; } $s = mubers_get_settings(); echo '

므브스 뉴스 빌더 설정

'; wp_nonce_field('mubers_settings_save'); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
로고 텍스트
로고 강조 텍스트
티커 텍스트
Google Analytics ID
네이버 사이트 인증
구글 사이트 인증
'; echo '

'; } 미디어 홈 - 미디어뉴스 | 므브스

미디어 홈

[mubers_home]