PHP ile Blog Sistemi Geliştirme (WordPress Mantığıyla)

Giriş: Neden Kendi Blog Sistemini Yazmalısın? Birçok kişi blog açmak istediğinde aklına hemen WordPress gelir. Ancak bu sistem her ne kadar güçlü olsa da, bazı dezavantajlara da sahiptir.Zamanla siten ağırlaşır, eklentiler çakışır, güvenlik açıkları baş gösterir. İşte tam bu noktada, kendi blog sistemini PHP ile sıfırdan yazmak seni özgürleştirir. Kendi blog sistemini yazmanın avantajları:İçindekilerListeyi göstermek

Google News Google News Flipboard Flipboard Sesli oku Yazıyı beğen Favorilere Ekle 20 Yorumlar
Daha fazla

Giriş: Neden Kendi Blog Sistemini Yazmalısın?

Birçok kişi blog açmak istediğinde aklına hemen WordPress gelir. Ancak bu sistem her ne kadar güçlü olsa da, bazı dezavantajlara da sahiptir.
Zamanla siten ağırlaşır, eklentiler çakışır, güvenlik açıkları baş gösterir. İşte tam bu noktada, kendi blog sistemini PHP ile sıfırdan yazmak seni özgürleştirir.

Kendi blog sistemini yazmanın avantajları:


💬 Benim Düşüncem

Kendi blog sistemini yazmak, sadece bir yazılım projesi değil, aynı zamanda bir karakter göstergesidir.
Bir sistemin nasıl çalıştığını anlamak, onu sıfırdan kurmakla başlar.
Bu yolda öğrendiklerin, seni “kopyalayan” değil “üreten” geliştirici yapar.


⚙️ 1. Bölüm: Proje Planı ve Klasör Yapısı

Bir blog sistemi oluştururken plan en önemli adımdır.
Önce yapıyı kafanda oturt, sonra kodla.

🧩 Blog sisteminde neler olacak?

  1. Ana sayfa (yazı listesi)

  2. Tekil yazı sayfası

  3. Yönetim paneli

  4. Veritabanı bağlantısı

  5. Görsel yükleme

  6. Adsense uyumlu tasarım

📂 Klasör Yapısı:

blog/
├── config/
│ └── db.php
├── admin/
│ ├── index.php
│ ├── add_post.php
│ ├── edit_post.php
│ └── delete_post.php
├── includes/
│ ├── header.php
│ ├── footer.php
│ └── functions.php
├── uploads/
│ └── images/
├── index.php
├── post.php
└── style.css

💬 Benim Düşüncem

Klasör yapısında sadelik = güçtür.
Karmaşık yapılar uzun vadede siteyi boğar.
Google sade, hızlı ve anlamlı yapıyı sever.


🧱 2. Bölüm: Veritabanı (MySQL) Tasarımı

Bir blog sisteminin kalbi veritabanıdır.

CREATE DATABASE maykairos_blog;
USE maykairos_blog;

CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
slug VARCHAR(255) UNIQUE,
content TEXT NOT NULL,
image VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

💬 Benim Düşüncem

İyi bir veritabanı tasarımı, projenin iskeletidir.
Zayıf temel üzerine inşa edilen sistemler, büyüdükçe çöker.


🔌 3. Bölüm: Veritabanı Bağlantısı

config/db.php dosyasına bağlanma kodu:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "maykairos_blog";

$conn = mysqli_connect($host, $user, $pass, $dbname);

if (!$conn) {
die("Bağlantı hatası: " . mysqli_connect_error());
}
?>

💬 Benim Düşüncem

Basit bağlantı, güvenli bağlantıdır.
Hata mesajlarını canlıda gizle, sadece test ortamında göster.


📄 4. Bölüm: Ana Sayfa (index.php)

Artık yazıları listeleyeceğimiz kısım:

<?php include 'config/db.php'; ?>
<?php include 'includes/header.php'; ?>

<h1>MayKairos Blog</h1>

<?php
$query = "SELECT * FROM posts ORDER BY id DESC";
$result = mysqli_query($conn, $query);

while($row = mysqli_fetch_assoc($result)): ?>
<div class="post">
<h2><a href="post.php?slug=<?= $row['slug'] ?>"><?= $row['title'] ?></a></h2>
<img src="uploads/images/<?= $row['image'] ?>" width="300">
<p><?= substr($row['content'], 0, 200) ?>...</p>
</div>
<?php endwhile; ?>

<?php include 'includes/footer.php'; ?>

💬 Benim Düşüncem

İlk çıktıyı ekranda görmek, bir programcının “merhaba dünya” anıdır.
Kendi yazının veritabanından geldiğini görmek, emek karşılığıdır.


🖊️ 5. Bölüm: Yönetim Paneli (Admin)

Blog sahibi olarak yazı ekleyeceğin basit bir panel oluşturalım.
admin/add_post.php:

<form method="POST" enctype="multipart/form-data">
<input type="text" name="title" placeholder="Başlık">
<textarea name="content" placeholder="İçerik"></textarea>
<input type="file" name="image">
<button type="submit" name="submit">Yazıyı Ekle</button>
</form>
<?php
include '../config/db.php';

if(isset($_POST['submit'])){
$title = $_POST['title'];
$slug = strtolower(str_replace(' ', '-', $title));
$content = $_POST['content'];
$image = $_FILES['image']['name'];
$target = "../uploads/images/".basename($image);

move_uploaded_file($_FILES['image']['tmp_name'], $target);

$sql = "INSERT INTO posts (title, slug, content, image) VALUES ('$title', '$slug', '$content', '$image')";
mysqli_query($conn, $sql);
echo "Yazı başarıyla eklendi!";
}
?>

💬 Benim Düşüncem

Kendin yazdığın yönetim paneline giriş yapmak, kendi markanın kapısından girmektir.
Bu özgürlük hissi, hazır sistemlerde bulunmaz.


🧩 6. Bölüm: Tekil Yazı Sayfası (post.php)

<?php
include 'config/db.php';
$slug = $_GET['slug'];
$query = "SELECT * FROM posts WHERE slug='$slug'";
$result = mysqli_query($conn, $query);
$post = mysqli_fetch_assoc($result);
?>

<h1><?= $post['title'] ?></h1>
<img src="uploads/images/<?= $post['image'] ?>" width="400">
<p><?= nl2br($post['content']) ?></p>

💬 Benim Düşüncem

Yazını kendi sisteminde görüntülemek, emeğin ürünüdür.
Artık sadece içerik değil, altyapı da senindir.


💸 7. Bölüm: Adsense Uyumlu Yapı

Adsense onayında dikkat edilen başlıca kriterler:

  • Temiz HTML yapısı

  • Hızlı açılan sayfalar

  • Görsel + metin dengesi

  • Spam olmayan içerik

Örnek reklam yerleşimi:

<!-- Reklam Alanı -->
<div class="adsense-box">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXX"
data-ad-slot="YYYY"
data-ad-format="auto"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>

💬 Benim Düşüncem

Reklam yerleşimi, içeriği bastırmamalı; desteklemelidir.
Kullanıcı içerik için gelir, reklam için değil. Ama doğru dengeyi kurarsan, iki taraf da kazanır.


🔐 8. Bölüm: Güvenlik Katmanı

  • Form verilerini doğrula

  • SQL injection’dan koru

  • Giriş paneline şifre ekle

$title = mysqli_real_escape_string($conn, $_POST['title']);

💬 Benim Düşüncem

Bir siteye emek veriyorsan, onu korumak da senin görevin.
Güvenlik bilinci, her yazılımcının içgüdüsü olmalı.


🚀 9. Bölüm: SEO ve Performans

SEO için yapılması gerekenler:

  • Dinamik title etiketi

  • Açıklama meta

  • Anlamlı URL (slug)

  • Görsellerde alt etiketi

<title><?= $post['title'] ?> | MayKairos Blog</title>
<meta name="description" content="<?= substr(strip_tags($post['content']), 0, 160) ?>">

💬 Benim Düşüncem

SEO sadece algoritmaya değil, kullanıcıya hitap etmektir.
Kullanıcı aradığı bilgiye kolayca ulaşıyorsa, SEO zaten çalışıyordur.


🏁 10. Bölüm: Sonuç ve Geliştirme Fikirleri

Artık elinde:

  • Tam çalışan PHP blog sistemi ✅

  • Adsense uyumlu tasarım ✅

  • Geliştirilebilir alt yapı ✅

Gelecekte ekleyebileceğin özellikler:

  • Yorum sistemi

  • Kategori yapısı

  • Gelişmiş yönetici girişi

  • API bağlantısı

  • Admin teması


💬 Benim Düşüncem

Bir blog sistemi yazmak, sadece kod yazmak değil; düşünce, tasarım, mantık ve sabrın birleşimidir.
Kendi emeğinle ürettiğin bir sistem, seni sadece geliştirici değil, oluşturucu yapar.

Yazar Hakkında

Benzer Yazılar

Bir Cevap Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

0/30 karakter

20 Yorum

  1. Mert Aydın 3 Kasım 2025,

    Keşfette gördüm ve işime yaradı pdo kısmı güzel anlatılmış eyvallah

  2. Selen 3 Kasım 2025,

    WordPress mantıgını phpde bu şekilde anlatmak çok mantıklı geldi admin panel kısmını da paylaşacak mısın

  3. Turan akın 3 Kasım 2025,

    Zirvedesiniz🚀

  4. Cem 3 Kasım 2025,

    👋🏻👋🏻👋🏻👋🏻

  5. Osman 3 Kasım 2025,

    Kesfetten geldik 🕺🏻

  6. Lale 3 Kasım 2025,

    Beğendim

  7. Ersin 3 Kasım 2025,

    Keşfette teknoloji alanında 1.sıraya yerleşmişsiniz umarım hostinginiz sağlamdır 😀

  8. Aleyna Sahin 3 Kasım 2025,

    Adminde baya yakisikliymis icerik saglam hem bilgili yakisikli😊

  9. İsmail 3 Kasım 2025,

    Php mobil uygulama bekliyorum hocam kesfet🤩

  10. Selin 3 Kasım 2025,

    Keşfetttt

  11. Murat 3 Kasım 2025,

    Daha fazla php içeriği bekliyoruz

  12. Özgee 3 Kasım 2025,

    Keşfetten geldik işe yarar içerik olmuş antalyadan selamlar

  13. Yok 3 Kasım 2025,

    🧿🧿🧿🧿

  14. Ozan 3 Kasım 2025,

    Eline sağlık 👏🏻

  15. Selami 3 Kasım 2025,

    Videolu anlatım gelir mi mehmet ali abi keşfett

  16. Damla Akıncı 3 Kasım 2025,

    Keşfet Keşfet sağlam bir php icerigi🔥🔥🔥🔥

  17. Mustafa 3 Kasım 2025,

    Keşfetten geldik rehber fena🫵🏻

  18. Evren 3 Kasım 2025,

    Veri tabanı tasarımı kısmının kodları çok sade olmus begendim google keşfete cikarmis icerigi önüme cikti tebrikler

  19. Lice 3 Kasım 2025,

    Nice hocam Mehmet yapıyon bu sporu 🙂

  20. Furkan 3 Kasım 2025,

    Konu çok iyi özetlenmiş yeni açılan bir site galiba teşekkür ederim