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.
Yönetim panelindeki "Genel Ayarlar" bölümünden kaydedilmiş bir ayar değerini güvenli bir şekilde çeker.
string ayar_getir(string $anahtar)
| Parametre | Tür | Açıklama |
|---|---|---|
$anahtar | string | Değeri alınacak ayarın anahtarı (örn: 'site_basligi', 'telefon_numarasi'). |
<h1><?php echo ayar_getir('site_basligi'); ?></h1>
<a href="tel:<?php echo ayar_getir('telefon_numarasi'); ?>">Bizi Arayın</a>
HTML içeriğini temizler ve belirtilen karakter uzunluğuna göre, kelimeleri bölmeden akıllı bir özet oluşturur. Sonuna "..." ekler.
string ozetle(?string $html_icerik, int $uzunluk)
| Parametre | Tür | Açıklama |
|---|---|---|
$html_icerik | string|null | Özetlenecek olan HTML formatındaki metin. |
$uzunluk | int | Özetin yaklaşık maksimum karakter uzunluğu. |
Blog listeleme sayfasında makale içeriğinin ilk 150 karakterini göstermek için:
<p><?php echo ozetle($makale['icerik_html'], 150); ?></p>
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.
array icerik_listesi_getir(array $params = [])
$params dizisi aşağıdaki anahtarları alabilir:
| Anahtar | Açıklama | Örnek Değer |
|---|---|---|
kategori_slug | İçeriklerin alınacağı kategorinin URL metni. | 'hizmetlerimiz' |
type | İçerik türü (post type). | 'urun' |
limit | Getirilecek maksimum içerik sayısı. | 5 |
order_by | Sıralama kriteri. | 'baslik ASC', 'i.olusturma_tarihi DESC' |
// "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'
]);
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.
array id_ile_icerik_listesi_getir(array $params = [])
$params dizisi kategori_slug yerine zorunlu olarak kategori_id anahtarını alır.
| Anahtar | Açıklama | Örnek Değer |
|---|---|---|
kategori_id Zorunlu | İçeriklerin alınacağı kategorinin ID'si. | 11 |
type | İçerik türü (post type). | 'urun' |
limit | Getirilecek maksimum içerik sayısı. | 5 |
order_by | Sıralama kriteri. | 'baslik ASC' |
// ID'si 11 olan kategoriden son 4 hizmeti çekmek:
$hizmetler = id_ile_icerik_listesi_getir([
'kategori_id' => 11,
'limit' => 4
]);
URL metnine (slug) göre tek bir içeriğin tüm detaylarını (özel alanlar, dosyalar, etiketler, albümler vb.) çeker.
array|false slug_ile_icerik_getir(string $slug)
| Parametre | Tür | Açıklama |
|---|---|---|
$slug | string | Detayları istenen içeriğin URL metni (örn: 'hakkimizda'). |
$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 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.
array|false id_ile_icerik_getir(int $id)
| Parametre | Tür | Açıklama |
|---|---|---|
$id | int | Detayları istenen içeriğin ID'si. |
$hosgeldiniz_yazisi = id_ile_icerik_getir(32);
if ($hosgeldiniz_yazisi) {
echo "<h2>" . e($hosgeldiniz_yazisi['baslik']) . "</h2>";
}
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.
string ozel_alan_getir(array $icerik, string $anahtar)
| Parametre | Tür | Açıklama |
|---|---|---|
$icerik | array | İçerik detaylarını içeren dizi. |
$anahtar | string | Değeri istenen özel alanın anahtarı. |
$etkinlik = slug_ile_icerik_getir('buyuk-konser');
if ($etkinlik) {
echo "Etkinlik Tarihi: " . ozel_alan_getir($etkinlik, 'etkinlik_tarihi');
}
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.
void menuyu_goster(string $menu_konumu, array $options = [])
| Parametre | Tür | Açıklama |
|---|---|---|
$menu_konumu | string | Menünün yönetim panelinde atandığı konum (örn: 'header-menu', 'footer-menu'). |
$options | array | (Opsiyonel) Menü elemanlarına atanacak CSS sınıflarını özelleştirmek için kullanılır. |
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'
]);
?>
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.
void kategori_menu_goster(string $kategori_slug, array $options = [])
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>
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.
void id_ile_menu_goster(int $kategori_id, array $options = [])
<?php
// ID'si 11 olan "Hizmetlerimiz" kategorisinin alt içeriklerini listele
id_ile_menu_goster(11);
?>
id_ile_altkategori_getir() fonksiyonundan dönen çok boyutlu diziyi işleyerek ekrana hiyerarşik bir HTML menüsü basan yardımcı bir fonksiyondur.
void menuyu_ekrana_bas(array $menu_ogeleri)
// İ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);
}
ID numarası ile tek bir kategorinin tüm bilgilerini (adı, slug, açıklama vb.) çeker.
array|null id_ile_kategori_getir(int $kategori_id)
$kategori_bilgisi = id_ile_kategori_getir(15);
if ($kategori_bilgisi) {
echo "<h1>" . e($kategori_bilgisi['kategori_adi']) . "</h1>";
}
Bir kategoriye ait alt kategorileri ve o kategoriye doğrudan bağlı içerikleri tek seferde getirir.
array kategori_detaylarini_getir(string $kategori_slug)
Fonksiyon, içinde ana_kategori, alt_kategoriler ve icerikler anahtarlarını barındıran bir dizi döndürür.
$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) {
// ...
}
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.
array id_ile_altkategori_getir(int $ust_kategori_id, bool $icerikleri_getir = false)
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);
Bir içeriğe eklenmiş dosyaları (PDF, Word vb.) başlık ve link içeren bir liste olarak ekrana basar.
void dosyalari_goster(array $icerik)
$sayfa = slug_ile_icerik_getir('proje-detay');
if($sayfa) {
dosyalari_goster($sayfa);
}
İçeriğin atandığı kategoriyi link olarak ekrana basar.
void kategoriyi_goster(array $icerik)
$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
kategoriyi_goster($makale);
}
İçeriğe atanmış etiketleri virgülle ayrılmış linkler olarak ekrana basar.
void etiketleri_goster(array $icerik)
$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
etiketleri_goster($makale);
}
İçeriğe atanmış etiketleri Bootstrap 'badge' ve ikon kullanarak daha şık bir şekilde ekrana basar.
void etiketleri_afili_goster(array $icerik)
$makale = slug_ile_icerik_getir('yeni-yazimiz');
if ($makale) {
etiketleri_afili_goster($makale);
}
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.
array site_yolu_getir(PDO $pdo, int $icerik_id)
$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>';
}
"Önyüz galerisinde göster" olarak işaretlenmiş tüm medya albümlerini kapak görselleriyle birlikte çeker.
array galeri_albumlerini_getir()
$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>';
}
Belirli bir medya kategorisine (URL slug'ı ile) ait albümleri kapak görselleriyle birlikte çeker.
array medya_kategorisinden_albumleri_getir(string $kategori_slug)
$foto_albumleri = medya_kategorisinden_albumleri_getir('dugun-fotograflari');
foreach ($foto_albumleri as $album) {
// ...
}
URL metni (slug) ile tek bir albümün detaylarını ve içindeki tüm medya öğelerini (resim, video vb.) çeker.
array|false slug_ile_album_getir(string $album_slug)
$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']) . '">';
}
}
}
ID'si belirtilen bir medya kategorisine ait, galeride gösterilen albümlerden, rastgele ve belirtilen sayıda fotoğraf getirir.
array kategoriden_rastgele_foto_getir(int $kategori_id, int $limit)
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']) . '">';
}
ID'si belirtilen bir albümden, rastgele ve belirtilen sayıda fotoğraf getirir.
array albumden_rastgele_foto_getir(int $album_id, int $limit)
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']) . '">';
}