Tema Entegrasyon Kütüphanesi Rehberi

Bu rehber, tema geliştirme sürecinde backend verilerine erişmek için kullanılan yardımcı PHP fonksiyonlarının nasıl kullanılacağını açıklar.

Genel Ayarlar ve Yardımcılar

ayar_getir()

Yönetim panelindeki "Genel Ayarlar" bölümünden kaydedilmiş bir ayar değerini güvenli bir şekilde çeker.

Yapısı

string ayar_getir(string $anahtar)

Parametreler

ParametreTürAçıklama
$anahtarstringDeğeri alınacak ayarın anahtarı (örn: 'site_basligi', 'telefon_numarasi').

Kullanım Örneği

<h1><?php echo ayar_getir('site_basligi'); ?></h1>
<a href="tel:<?php echo ayar_getir('telefon_numarasi'); ?>">Bizi Arayın</a>

ozetle()

HTML içeriğini temizler ve belirtilen karakter uzunluğuna göre, kelimeleri bölmeden akıllı bir özet oluşturur. Sonuna "..." ekler.

Yapısı

string ozetle(?string $html_icerik, int $uzunluk)

Parametreler

ParametreTürAçıklama
$html_icerikstring|nullÖzetlenecek olan HTML formatındaki metin.
$uzunlukintÖzetin yaklaşık maksimum karakter uzunluğu.

Kullanım Örneği

Blog listeleme sayfasında makale içeriğinin ilk 150 karakterini göstermek için:

<p><?php echo ozetle($makale['icerik_html'], 150); ?></p>

İçerik Getirme Fonksiyonları

icerik_listesi_getir()

Esnek kriterlere göre birden fazla içeriği liste halinde çeker. Sonuçları bir dizi (array) olarak döndürür. Bu fonksiyon URL metni (slug) kullanarak çalışır.

Yapısı

array icerik_listesi_getir(array $params = [])

Parametreler

$params dizisi aşağıdaki anahtarları alabilir:

AnahtarAçıklamaÖrnek Değer
kategori_slugİçeriklerin alınacağı kategorinin URL metni.'hizmetlerimiz'
typeİçerik türü (post type).'urun'
limitGetirilecek maksimum içerik sayısı.5
order_bySıralama kriteri.'baslik ASC', 'i.olusturma_tarihi DESC'

Kullanım Örnekleri

// "Hizmetlerimiz" kategorisindeki son 4 içeriği çekmek:
$hizmetler = icerik_listesi_getir([
    'kategori_slug' => 'hizmetlerimiz',
    'limit' => 4
]);

// "Duyuru" türündeki tüm içerikleri başlığa göre A'dan Z'ye sıralı çekmek:
$duyurular = icerik_listesi_getir([
    'type' => 'duyuru',
    'order_by' => 'baslik ASC'
]);

id_ile_icerik_listesi_getir()

icerik_listesi_getir() fonksiyonuna benzer, ancak kategori filtresini kategori ID'si ile yapar. Tema içinde ID'si sabit olan kategorilerden veri çekmek için daha güvenli ve performanslıdır.

Yapısı

array id_ile_icerik_listesi_getir(array $params = [])

Parametreler

$params dizisi kategori_slug yerine zorunlu olarak kategori_id anahtarını alır.

AnahtarAçıklamaÖrnek Değer
kategori_id Zorunluİçeriklerin alınacağı kategorinin ID'si.11
typeİçerik türü (post type).'urun'
limitGetirilecek maksimum içerik sayısı.5
order_bySıralama kriteri.'baslik ASC'

Kullanım Örneği

// ID'si 11 olan kategoriden son 4 hizmeti çekmek:
$hizmetler = id_ile_icerik_listesi_getir([
    'kategori_id' => 11,
    'limit' => 4
]);

slug_ile_icerik_getir()

URL metnine (slug) göre tek bir içeriğin tüm detaylarını (özel alanlar, dosyalar, etiketler, albümler vb.) çeker.

Yapısı

array|false slug_ile_icerik_getir(string $slug)

Parametreler

ParametreTürAçıklama
$slugstringDetayları istenen içeriğin URL metni (örn: 'hakkimizda').

Kullanım Örneği

$hakkimizda_sayfasi = slug_ile_icerik_getir('hakkimizda');
if ($hakkimizda_sayfasi) {
    echo "<h1>" . e($hakkimizda_sayfasi['baslik']) . "</h1>";
    echo "<div>" . $hakkimizda_sayfasi['icerik_html'] . "</div>";
}

id_ile_icerik_getir()

ID numarasına göre tek bir içeriğin tüm detaylarını çeker. Tema içinde ID'si sabit olan özel sayfaları (örn: anasayfadaki "Hoşgeldiniz" yazısı) çekmek için idealdir.

Yapısı

array|false id_ile_icerik_getir(int $id)

Parametreler

ParametreTürAçıklama
$idintDetayları istenen içeriğin ID'si.

Kullanım Örneği

$hosgeldiniz_yazisi = id_ile_icerik_getir(32);
if ($hosgeldiniz_yazisi) {
    echo "<h2>" . e($hosgeldiniz_yazisi['baslik']) . "</h2>";
}

ozel_alan_getir()

slug_ile_icerik_getir() veya id_ile_icerik_getir() ile çekilmiş bir içerik dizisinden, belirli bir özel alanın değerini döndürür.

Yapısı

string ozel_alan_getir(array $icerik, string $anahtar)

Parametreler

ParametreTürAçıklama
$icerikarrayİçerik detaylarını içeren dizi.
$anahtarstringDeğeri istenen özel alanın anahtarı.

Kullanım Örneği

$etkinlik = slug_ile_icerik_getir('buyuk-konser');
if ($etkinlik) {
    echo "Etkinlik Tarihi: " . ozel_alan_getir($etkinlik, 'etkinlik_tarihi');
}

Menü ve Liste Gösterim Fonksiyonları

menuyu_goster()

Yönetim panelindeki "Menüler" bölümünde oluşturulmuş bir menüyü, belirtilen konum değerine göre hiyerarşik bir HTML (<ul><li>) listesi olarak ekrana basar.

Yapısı

void menuyu_goster(string $menu_konumu, array $options = [])

Parametreler

ParametreTürAçıklama
$menu_konumustringMenünün yönetim panelinde atandığı konum (örn: 'header-menu', 'footer-menu').
$optionsarray(Opsiyonel) Menü elemanlarına atanacak CSS sınıflarını özelleştirmek için kullanılır.

Kullanım Örnekleri

Basit Kullanım:

<nav>
    <?php menuyu_goster('header-menu'); ?>
</nav>

Bootstrap 4 Uyumlu Gelişmiş Kullanım:

<?php
menuyu_goster('header-menu', [
    'ul_class'               => 'navbar-nav ml-auto',
    'submenu_class'          => 'dropdown-menu',
    'li_with_children_class' => 'nav-item dropdown'
]);
?>

kategori_menu_goster()

Belirli bir kategoriye ait içerikleri, hiyerarşik bir menü (alt sayfaları içerecek şekilde) olarak ekrana basar. Kategoriye URL metni (slug) ile erişir.

Yapısı

void kategori_menu_goster(string $kategori_slug, array $options = [])

Kullanım Örneği

Genellikle bir ana menü öğesinin altına alt menü olarak eklemek için kullanılır.

<ul class="navbar-nav">
    <li class="nav-item menu-item-has-children">
        <a href="/kategori/hizmetlerimiz">Hizmetlerimiz</a>
        <?php kategori_menu_goster('hizmetlerimiz', ['ul_class' => 'sub-menu']); ?>
    </li>
</ul>

id_ile_menu_goster()

kategori_menu_goster() ile aynı işi yapar fakat kategoriye ID numarası ile erişir. Tema içi kullanım için daha güvenilir bir yöntemdir.

Yapısı

void id_ile_menu_goster(int $kategori_id, array $options = [])

Kullanım Örneği

<?php
// ID'si 11 olan "Hizmetlerimiz" kategorisinin alt içeriklerini listele
id_ile_menu_goster(11);
?>

menuyu_ekrana_bas()

id_ile_altkategori_getir() fonksiyonundan dönen çok boyutlu diziyi işleyerek ekrana hiyerarşik bir HTML menüsü basan yardımcı bir fonksiyondur.

Yapısı

void menuyu_ekrana_bas(array $menu_ogeleri)

Kullanım Örneği

// İlk olarak menü verisini çekiyoruz
$bolgeler_menusu = id_ile_altkategori_getir(32, true);

// Sonra bu veriyi ekrana basıyoruz
if (!empty($bolgeler_menusu)) {
    menuyu_ekrana_bas($bolgeler_menusu);
}

Kategori ve Etiket Fonksiyonları

id_ile_kategori_getir()

ID numarası ile tek bir kategorinin tüm bilgilerini (adı, slug, açıklama vb.) çeker.

Yapısı

array|null id_ile_kategori_getir(int $kategori_id)

Kullanım Örneği

$kategori_bilgisi = id_ile_kategori_getir(15);
if ($kategori_bilgisi) {
    echo "<h1>" . e($kategori_bilgisi['kategori_adi']) . "</h1>";
}

kategori_detaylarini_getir()

Bir kategoriye ait alt kategorileri ve o kategoriye doğrudan bağlı içerikleri tek seferde getirir.

Yapısı

array kategori_detaylarini_getir(string $kategori_slug)

Dönen Değer

Fonksiyon, içinde ana_kategori, alt_kategoriler ve icerikler anahtarlarını barındıran bir dizi döndürür.

Kullanım Örneği

$kategori_sayfasi = kategori_detaylarini_getir('urunlerimiz');

// Alt kategorileri listele
foreach ($kategori_sayfasi['alt_kategoriler'] as $alt_kat) {
    // ...
}

// İçerikleri listele
foreach ($kategori_sayfasi['icerikler'] as $icerik) {
    // ...
}

id_ile_altkategori_getir()

Bir ana kategori ID'sinden başlayarak, tüm alt kategorileri (torunlar dahil) hiyerarşik bir ağaç yapısında getirir. İsteğe bağlı olarak bu kategorilere bağlı içerikleri de getirebilir.

Yapısı

array id_ile_altkategori_getir(int $ust_kategori_id, bool $icerikleri_getir = false)

Kullanım Örneği

Mega menü gibi karmaşık yapılar oluşturmak için idealdir.

// ID'si 32 olan "Bölgeler" kategorisinin tüm alt kategorilerini
// ve onlara bağlı sayfaları getir:
$bolgeler_agaci = id_ile_altkategori_getir(32, true);

// Bu diziyi işlemek için menuyu_ekrana_bas() fonksiyonu kullanılabilir.
menuyu_ekrana_bas($bolgeler_agaci);

dosyalari_goster()

Bir içeriğe eklenmiş dosyaları (PDF, Word vb.) başlık ve link içeren bir liste olarak ekrana basar.

Yapısı

void dosyalari_goster(array $icerik)

Kullanım Örneği

$sayfa = slug_ile_icerik_getir('proje-detay');
if($sayfa) {
    dosyalari_goster($sayfa);
}

kategoriyi_goster()

İçeriğin atandığı kategoriyi link olarak ekrana basar.

Yapısı

void kategoriyi_goster(array $icerik)

Kullanım Örneği

$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
    kategoriyi_goster($makale);
}

etiketleri_goster()

İçeriğe atanmış etiketleri virgülle ayrılmış linkler olarak ekrana basar.

Yapısı

void etiketleri_goster(array $icerik)

Kullanım Örneği

$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
    etiketleri_goster($makale);
}

etiketleri_afili_goster()

İçeriğe atanmış etiketleri Bootstrap 'badge' ve ikon kullanarak daha şık bir şekilde ekrana basar.

Yapısı

void etiketleri_afili_goster(array $icerik)

Kullanım Örneği

$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
    etiketleri_afili_goster($makale);
}

site_yolu_getir()

Bir içerik sayfasının kategori hiyerarşisini takip ederek "breadcrumb" (site yolu) oluşturmak için gerekli veriyi dizi olarak döndürür.

Yapısı

array site_yolu_getir(PDO $pdo, int $icerik_id)

Kullanım Örneği

$icerik = slug_ile_icerik_getir('alt-sayfa-ornek');
if ($icerik) {
    // $pdo değişkeninin global'den gelmesi gerekir
    global $pdo;
    $breadcrumbs = site_yolu_getir($pdo, $icerik['id']);
    
    echo '<nav>';
    foreach($breadcrumbs as $breadcrumb) {
        if ($breadcrumb['url']) {
            echo '<a href="' . $breadcrumb['url'] . '">' . $breadcrumb['baslik'] . '</a> / ';
        } else {
            echo $breadcrumb['baslik'];
        }
    }
    echo '</nav>';
}

Medya ve Galeri Fonksiyonları

galeri_albumlerini_getir()

"Önyüz galerisinde göster" olarak işaretlenmiş tüm medya albümlerini kapak görselleriyle birlikte çeker.

Yapısı

array galeri_albumlerini_getir()

Kullanım Örneği

$albumler = galeri_albumlerini_getir();
foreach ($albumler as $album) {
    echo '<a href="/album/' . e($album['url_slug']) . '">';
    echo '<img src="' . e($album['kapak_gorseli']) . '">';
    echo '<h3>' . e($album['album_basligi']) . '</h3>';
    echo '</a>';
}

medya_kategorisinden_albumleri_getir()

Belirli bir medya kategorisine (URL slug'ı ile) ait albümleri kapak görselleriyle birlikte çeker.

Yapısı

array medya_kategorisinden_albumleri_getir(string $kategori_slug)

Kullanım Örneği

$foto_albumleri = medya_kategorisinden_albumleri_getir('dugun-fotograflari');
foreach ($foto_albumleri as $album) {
    // ...
}

slug_ile_album_getir()

URL metni (slug) ile tek bir albümün detaylarını ve içindeki tüm medya öğelerini (resim, video vb.) çeker.

Yapısı

array|false slug_ile_album_getir(string $album_slug)

Kullanım Örneği

$album = slug_ile_album_getir('paris-tatili');
if ($album) {
    echo '<h1>' . e($album['album_basligi']) . '</h1>';
    foreach($album['ogeler'] as $medya) {
        if($medya['medya_tipi'] == 'resim') {
            echo '<img src="' . e($medya['dosya_yolu_veya_kod']) . '">';
        }
    }
}

kategoriden_rastgele_foto_getir()

ID'si belirtilen bir medya kategorisine ait, galeride gösterilen albümlerden, rastgele ve belirtilen sayıda fotoğraf getirir.

Yapısı

array kategoriden_rastgele_foto_getir(int $kategori_id, int $limit)

Kullanım Örneği

Anasayfada veya sidebar'da rastgele görseller göstermek için idealdir.

// ID'si 1 olan kategoriden rastgele 8 fotoğraf çek
$rastgele_fotograflar = kategoriden_rastgele_foto_getir(1, 8);
foreach($rastgele_fotograflar as $foto) {
    echo '<img src="' . e($foto['dosya_yolu_veya_kod']) . '" title="' . e($foto['baslik']) . '">';
}

albumden_rastgele_foto_getir()

ID'si belirtilen bir albümden, rastgele ve belirtilen sayıda fotoğraf getirir.

Yapısı

array albumden_rastgele_foto_getir(int $album_id, int $limit)

Kullanım Örneği

Bir içerik sayfasında, o içerikle ilişkili albümden rastgele görseller göstermek için kullanılabilir.

// ID'si 5 olan albümden rastgele 4 fotoğraf çek
$rastgele_album_fotolari = albumden_rastgele_foto_getir(5, 4);
foreach($rastgele_album_fotolari as $foto) {
    echo '<img src="' . e($foto['dosya_yolu_veya_kod']) . '">';
}