/* * functions.php - Tema Fonksiyonları * Bu dosya, temanın özelliklerini, menüleri, widget alanlarını ve script/style dosyalarını tanımlar. */ if ( ! function_exists( 'modern_news_theme_setup' ) ) : /** * Tema kurulumu ve temel özelliklerin tanımlanması. */ function modern_news_theme_setup() { // Tema metin alanını tanımla (çeviri için) load_theme_textdomain( 'modern-haber-temasi', get_template_directory() . '/languages' ); // Otomatik feed bağlantıları ekle add_theme_support( 'automatic-feed-links' ); // etiketini yönetmeyi etkinleştir add_theme_support( 'title-tag' ); // Yazı küçük resimlerini (featured images) etkinleştir add_theme_support( 'post-thumbnails' ); // Yeni resim boyutları tanımlayabilirsiniz (isteğe bağlı) // add_image_size( 'hero-large', 800, 500, true ); // add_image_size( 'hero-small', 300, 200, true ); // add_image_size( 'post-thumbnail-list', 180, 120, true ); // Özel logo özelliğini etkinleştir add_theme_support( 'custom-logo', array( 'height' => 100, // Logo yüksekliği 'width' => 300, // Logo genişliği 'flex-height' => true, 'flex-width' => true, ) ); // Navigasyon menü konumlarını kaydet register_nav_menus( array( 'primary-menu' => esc_html__( 'Ana Menü', 'modern-haber-temasi' ), 'footer-menu' => esc_html__( 'Alt Bilgi Menüsü', 'modern-haber-temasi' ), ) ); // HTML5 desteği ekle add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', ) ); // Yazı formatlarını etkinleştir (isteğe bağlı) add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'video', 'audio', 'chat', ) ); // Varsayılan blok stillerini hizalamayı etkinleştir add_theme_support( 'align-wide' ); // Editör stillerini etkinleştir (isteğe bağlı - temanın CSS'ini editörde görmek için) // add_editor_style( 'editor-style.css' ); // WooCommerce desteği (eğer e-ticaret özelliği eklenecekse) // add_theme_support( 'woocommerce' ); } endif; add_action( 'after_setup_theme', 'modern_news_theme_setup' ); /** * Widget alanlarını kaydet. */ function modern_news_theme_widgets_init() { register_sidebar( array( 'name' => esc_html__( 'Sidebar', 'modern-haber-temasi' ), 'id' => 'sidebar-1', 'description' => esc_html__( 'Buraya widget ekleyin.', 'modern-haber-temasi' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); // Footer widget alanları (isteğe bağlı olarak daha fazla eklenebilir) register_sidebar( array( 'name' => esc_html__( 'Alt Bilgi Alanı 1', 'modern-haber-temasi' ), 'id' => 'footer-1', 'description' => esc_html__( 'Alt bilgi alanına widget ekleyin.', 'modern-haber-temasi' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); register_sidebar( array( 'name' => esc_html__( 'Alt Bilgi Alanı 2', 'modern-haber-temasi' ), 'id' => 'footer-2', 'description' => esc_html__( 'Alt bilgi alanına widget ekleyin.', 'modern-haber-temasi' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); register_sidebar( array( 'name' => esc_html__( 'Alt Bilgi Alanı 3', 'modern-haber-temasi' ), 'id' => 'footer-3', 'description' => esc_html__( 'Alt bilgi alanına widget ekleyin.', 'modern-haber-temasi' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'modern_news_theme_widgets_init' ); /** * Script ve Style dosyalarını kuyruğa al (enqueue). */ function modern_news_theme_scripts() { // CSS dosyasını kuyruğa al wp_enqueue_style( 'modern-news-theme-style', get_stylesheet_uri(), array(), '1.0' ); // Google Fontlarını kuyruğa al wp_enqueue_style( 'google-fonts-poppins-opensans', 'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&family=Poppins:wght@400;600;700&display=swap', array(), null ); // JavaScript dosyasını kuyruğa al wp_enqueue_script( 'modern-news-theme-script', get_template_directory_uri() . '/js/script.js', array( 'jquery' ), '1.0', true ); // jQuery bağımlılığı eklendi, footer'da yüklenecek // Eğer script.js dosyasını kullanacaksanız, yukarıdaki satırın yorumunu kaldırın ve aşağıdaki inline scripti silin. // Inline script (sadece demo amaçlı, production temalarda önerilmez) /* wp_add_inline_script( 'modern-news-theme-script-inline', ' document.addEventListener("DOMContentLoaded", function() { var menuToggle = document.querySelector(".menu-toggle"); var siteNavigation = document.getElementById("site-navigation"); var primaryMenu = document.getElementById("primary-menu"); if (menuToggle && siteNavigation && primaryMenu) { menuToggle.addEventListener("click", function() { var isToggled = siteNavigation.classList.toggle("toggled"); menuToggle.setAttribute("aria-expanded", isToggled); if (isToggled) { primaryMenu.style.display = "flex"; } else { primaryMenu.style.display = "none"; } }); window.addEventListener("resize", function() { if (window.innerWidth > 992) { siteNavigation.classList.remove("toggled"); menuToggle.setAttribute("aria-expanded", "false"); primaryMenu.style.display = ""; } }); } }); ', 'after' ); // Sayfa yüklendikten sonra çalıştır */ } add_action( 'wp_enqueue_scripts', 'modern_news_theme_scripts' ); // Yazı özetinin kelime sayısını ayarla (isteğe bağlı) function custom_excerpt_length( $length ) { return 30; // Özet 30 kelime olacak } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); // Yazı özetinin sonundaki [...] kısmını değiştir (isteğe bağlı) function custom_excerpt_more( $more ) { return '...'; } add_filter( 'excerpt_more', 'custom_excerpt_more' ); // Arama formu HTML çıktısını özelleştir (isteğe bağlı) function custom_search_form( $form ) { $form = '<form role="search" method="get" class="search-form" action="' . esc_url( home_url( '/' ) ) . '"> <label> <span class="screen-reader-text">' . _x( 'Ara:', 'label' ) . '</span> <input type="search" class="search-field" placeholder="' . esc_attr_x( 'Ara …', 'placeholder' ) . '" value="' . get_search_query() . '" name="s" /> </label> <input type="submit" class="search-submit" value="' . esc_attr_x( 'Ara', 'submit button' ) . '" /> </form>'; return $form; } add_filter( 'get_search_form', 'custom_search_form' ); /* * index.php - Ana Sayfa Şablonu * Bu dosya, sitenin ana sayfasının (genellikle son yazıların listelendiği sayfa) yapısını tanımlar. * WordPress Döngüsü (The Loop) kullanılarak yazılar çekilir ve gösterilir. */ // header.php dosyasını dahil et get_header(); ?> <section class="featured-posts-hero"> <h2>Öne Çıkanlar</h2> <div class="hero-grid"> <article class="post hero-post large"> <a href="#"> <figure class="post-thumbnail"> <img src="https://placehold.co/800x500/EFEFEF/grey?text=Buyuk+Haber+Gorseli" alt="Büyük Öne Çıkan Haber Başlığı"> </figure> <div class="entry-header"> <span class="post-category">Kategori Adı</span> <h3 class="entry-title">Büyük Öne Çıkan Haber Başlığı Buraya Gelecek ve Dikkat Çekecek</h3> </div> </a> </article> <div class="hero-small-posts"> <article class="post hero-post small"> <a href="#"> <figure class="post-thumbnail"> <img src="https://placehold.co/300x200/EFEFEF/grey?text=Kucuk+Gorsel+1" alt="Küçük Haber 1"> </figure> <div class="entry-header"> <span class="post-category">Kategori 1</span> <h4 class="entry-title">Küçük Öne Çıkan Haber Başlığı 1</h4> </div> </a> </article> <article class="post hero-post small"> <a href="#"> <figure class="post-thumbnail"> <img src="https://placehold.co/300x200/EFEFEF/grey?text=Kucuk+Gorsel+2" alt="Küçük Haber 2"> </figure> <div class="entry-header"> <span class="post-category">Kategori 2</span> <h4 class="entry-title">Küçük Öne Çıkan Haber Başlığı 2</h4> </div> </a> </article> </div> </div> </section><section class="latest-posts"> <h2>Son Haberler</h2> <div class="posts-list"> <p>Üzgünüz, gösterilecek yazı bulunamadı.</p> </div> </section><section class="category-section ekonomi"> <h2>Ekonomi Haberleri</h2> <div class="posts-grid"> <article class="post category-post"> <a href="#"> <figure class="post-thumbnail"><img src="https://placehold.co/300x200/EFEFEF/grey?text=Ekonomi+Gorsel" alt="Ekonomi Haberi"></figure> <div class="entry-header"> <span class="post-category">Ekonomi</span> <h4 class="entry-title">Ekonomi Alanından Bir Haber Başlığı ve Bu Biraz Uzun Olabilir</h4> </div> </a> </article> <article class="post category-post"> <a href="#"> <figure class="post-thumbnail"><img src="https://placehold.co/300x200/EFEFEF/grey?text=Ekonomi+Gorsel2" alt="Ekonomi Haberi 2"></figure> <div class="entry-header"> <span class="post-category">Ekonomi</span> <h4 class="entry-title">Başka Bir Ekonomi Haber Başlığı</h4> </div> </a> </article> <article class="post category-post"> <a href="#"> <figure class="post-thumbnail"><img src="https://placehold.co/300x200/EFEFEF/grey?text=Ekonomi+Gorsel3" alt="Ekonomi Haberi 3"></figure> <div class="entry-header"> <span class="post-category">Ekonomi</span> <h4 class="entry-title">Üçüncü Ekonomi Haber Başlığı</h4> </div> </a> </article> </div> </section> <section class="category-section spor"> <h2>Spor Haberleri</h2> <div class="posts-list"> <article class="post category-post list-item"> <div class="post-thumbnail"><a href="#"><img src="https://placehold.co/100x80/EFEFEF/grey?text=Spor+Thumb" alt="Spor Haberi"></a></div> <div class="entry-content"> <span class="post-category">Spor</span> <h4 class="entry-title"><a href="#">Spor Dünyasından Son Haber Başlığı</a></h4> </div> </article> <article class="post category-post list-item"> <div class="post-thumbnail"><a href="#"><img src="https://placehold.co/100x80/EFEFEF/grey?text=Spor+Thumb2" alt="Spor Haberi 2"></a></div> <div class="entry-content"> <span class="post-category">Spor</span> <h4 class="entry-title"><a href="#">Bir Diğer Spor Haber Başlığı</a></h4> </div> </article> <article class="post category-post list-item"> <div class="post-thumbnail"><a href="#"><img src="https://placehold.co/100x80/EFEFEF/grey?text=Spor+Thumb3" alt="Spor Haberi 3"></a></div> <div class="entry-content"> <span class="post-category">Spor</span> <h4 class="entry-title"><a href="#">Üçüncü Spor Haber Başlığı</a></h4> </div> </article> </div> </section> <section class="media-section video-gallery"> <h2>Video Galeri</h2> <div class="media-grid"> <article class="media-item"> <a href="#"> <figure class="media-thumbnail"> <img src="https://placehold.co/400x250/EFEFEF/grey?text=Video+Kapak" alt="Video Başlığı"> <span class="play-icon">▶</span> </figure> <h4 class="media-title">İlginç Bir Video Başlığı Buraya Gelecek</h4> </a> </article> <article class="media-item"> <a href="#"> <figure class="media-thumbnail"> <img src="https://placehold.co/400x250/EFEFEF/grey?text=Video+Kapak2" alt="Video Başlığı 2"> <span class="play-icon">▶</span> </figure> <h4 class="media-title">Başka Bir Video Başlığı</h4> </a> </article> <article class="media-item"> <a href="#"> <figure class="media-thumbnail"> <img src="https://placehold.co/400x250/EFEFEF/grey?text=Video+Kapak3" alt="Video Başlığı 3"> <span class="play-icon">▶</span> </figure> <h4 class="media-title">Üçüncü Video Başlığı</h4> </a> </article> </div> </section> <section class="ad-section"> <div class="ad-banner"> <img src="https://placehold.co/728x90/EFEFEF/grey?text=Reklam+Alani" alt="Reklam Bannerı"> </div> </section> /* * sidebar.php - Tema Sidebar Alanı * Bu dosya, sitenin sidebar (kenar çubuğu) bölümünü içerir. * WordPress widgetları dynamic_sidebar() fonksiyonu ile gösterilir. */ ?> <aside id="secondary" class="widget-area"> <section id="search-2" class="widget widget_search"> <h2 class="widget-title">Ara</h2> <form role="search" method="get" id="searchform" class="searchform" action="https://www.haberdirekt.com/"> <div> <label class="screen-reader-text" for="s">Arama:</label> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Ara" /> </div> </form> </section> <section id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widget-title">Son Yazılar</h2> <ul> <li><a href="https://www.haberdirekt.com/teknoloji/dijital-bakimin-yeni-standardi-repairist-bakim-istanbulda-sahne-aldi-107669.html">Dijital Bakımın Yeni Standardı: Repairist, Bakım İstanbul’da Sahne Aldı</a></li> <li><a href="https://www.haberdirekt.com/teknoloji/gunes-enerjisi-ile-aydinlik-bir-gelecege-adim-atin-107666.html">Güneş Enerjisi ile Aydınlık Bir Geleceğe Adım Atın</a></li> <li><a href="https://www.haberdirekt.com/teknoloji/depobigg-ile-istanbulda-sorunsuz-esya-depolama-deneyimi-107662.html">Depobigg ile İstanbul’da Sorunsuz Eşya Depolama Deneyimi</a></li> <li><a href="https://www.haberdirekt.com/yasam/antalya-yuzme-kursu-ile-yuzmeyi-ogrenmenin-tam-zamani-107650.html">Antalya Yüzme Kursu ile Yüzmeyi Öğrenmenin Tam Zamanı</a></li> <li><a href="https://www.haberdirekt.com/teknoloji/istanbul-bosanma-davalarinda-hukuki-guvence-profesyonel-avukat-destegi-107643.html">İstanbul Boşanma Davalarında Hukuki Güvence: Profesyonel Avukat Desteği</a></li> </ul> </section> <section id="categories-2" class="widget widget_categories"> <h2 class="widget-title">Kategoriler</h2> <ul> <li class="cat-item cat-item-1"><a href="https://www.haberdirekt.com/kategori/gundem">Gündem</a> (29.417) </li> <li class="cat-item cat-item-10"><a href="https://www.haberdirekt.com/kategori/ekonomi">Ekonomi</a> (4.319) </li> <li class="cat-item cat-item-5"><a href="https://www.haberdirekt.com/kategori/teknoloji">Teknoloji</a> (2.520) </li> <li class="cat-item cat-item-3"><a href="https://www.haberdirekt.com/kategori/egitim">Eğitim</a> (1.480) </li> <li class="cat-item cat-item-3870"><a href="https://www.haberdirekt.com/kategori/yasam">Yaşam</a> (1.055) </li> <li class="cat-item cat-item-6"><a href="https://www.haberdirekt.com/kategori/magazin">Magazin</a> (1.036) </li> <li class="cat-item cat-item-4"><a href="https://www.haberdirekt.com/kategori/dunya">Dünya</a> (704) </li> <li class="cat-item cat-item-2"><a href="https://www.haberdirekt.com/kategori/politika">Politika</a> (314) </li> <li class="cat-item cat-item-3871"><a href="https://www.haberdirekt.com/kategori/kultur-sanat">Kültür Sanat</a> (136) </li> <li class="cat-item cat-item-2517"><a href="https://www.haberdirekt.com/kategori/karma">karma</a> (27) </li> <li class="cat-item cat-item-3872"><a href="https://www.haberdirekt.com/kategori/yerel">Yerel</a> (2) </li> </ul> </section> <section id="popular-posts-widget" class="widget popular-posts-widget"> <h2 class="widget-title">Popüler Haberler</h2> <ul> <li><a href="#">En Çok Okunan Haber 1</a></li> <li><a href="#">En Çok Okunan Haber 2</a></li> <li><a href="#">En Çok Okunan Haber 3</a></li> <li><a href="#">En Çok Okunan Haber 4</a></li> <li><a href="#">En Çok Okunan Haber 5</a></li> </ul> </section> <section class="widget ad-widget"> <h2 class="widget-title">Reklam</h2> <div class="ad-banner"> <img src="https://placehold.co/300x250/EFEFEF/grey?text=Sidebar+Reklam" alt="Sidebar Reklam Alanı"> </div> </section> </aside> </main></div></div></div>/* * footer.php - Tema Alt Bilgisi Alanı * Bu dosya, sitenin alt bilgi bölümünü ve HTML'in kapanış etiketlerini içerir. * WordPress fonksiyonları ile dinamik hale getirilir. */ ?> </main></div></div></div><footer id="colophon" class="site-footer"> <div class="container"> <div class="footer-widgets"> <div class="footer-widget-area col-1"> <section class="widget widget_text"> <h2 class="widget-title">Hakkımızda</h2> <div class="textwidget"> <p>Site hakkında kısa bilgi. Misyonumuz, vizyonumuz vb. Amacımız en güncel ve doğru haberleri okuyucularımıza ulaştırmaktır.</p> </div> </section> </div> <div class="footer-widget-area col-2"> <section class="widget widget_nav_menu"> <h2 class="widget-title">Hızlı Linkler</h2> </section> </div> <div class="footer-widget-area col-3"> <section class="widget social-media-widget"> <h2 class="widget-title">Bizi Takip Edin</h2> <div class="social-icons"> <a href="#" class="icon facebook" aria-label="Facebook">FB</a> <a href="#" class="icon twitter" aria-label="Twitter">TW</a> <a href="#" class="icon instagram" aria-label="Instagram">IN</a> <a href="#" class="icon youtube" aria-label="Youtube">YT</a> </div> </section> </div> </div><div class="site-info"> © 2025 <a href="https://www.haberdirekt.com/" rel="home">Haber Direkt Son Dakika Güncel Haberler</a>. Tüm Hakları Saklıdır. Tasarım & Geliştirme: [Adınız/Şirket Adınız] </div></div></footer></div><script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/haber\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> </body> </html>