WordPress veritabanından veri çekmek
WordPress’in hazır fonksiyonları sayesinde tema düzenleme oldukça kolayken hazır fonksiyonlar dışında sisteme müdahale etmek aynı oranda zorlaşıyor.
WordPress alt yapısını kullanan bir siteniz ve birde html sayfanız veya baÅŸka bir cms sisteminiz var. WordPress’te yazdığınız son yazıların bu sayfada yayınlamak istiyorsunuz. İşte burada tam olarak bunu anlatıyoruz.
WordPress veritabanına bağlanmak
Öncelikle veritabanına bağlanalım.
VERİTABANI_KULLANICI_ADINIZ, VERİTABANI_İSMİNİZ, ŞİFRENİZ alanlarını veritabanı bilgilerinize göre doldurun.
<?php
$dbhost = "localhost";
$dbuser = "VERİTABANI_KULLANICI_ADINIZ";
$dbpass = "ŞİFRENİZ";
$dbdata = "VERİTABANI_İSMİNİZ";
if (!@mysql_connect($dbhost, $dbuser, $dbpass)) {
die("Veritabanına bağlanılamadı...
HATA: ".mysql_error());
}
if (!@mysql_select_db($dbdata)) {
die("Veritabanı seçilemedi
HATA: ".mysql_error());
}
?>
WordPress veritabanından yazı çekmek
Aşağıdaki kodları sitenize göre düzenleyip yayınlamak istediğiniz yere eklerseniz wordpress sitenizdeki son 10 yazı alt alta görüntülenir.
www.siteadi.com yerine site adresinizi yazınız.
<?php
$dbhost = "localhost";
$dbuser = "VERİTABANI_KULLANICI_ADINIZ";
$dbpass = "ŞİFRENİZ";
$dbdata = "VERİTABANI_İSMİNİZ";
if (!@mysql_connect($dbhost, $dbuser, $dbpass)) {
die("Veritabanına bağlanılamadı...<br>HATA: ".mysql_error());
}
if (!@mysql_select_db($dbdata)) {
die("Veritabanı seçilemedi<br>HATA: ".mysql_error());
}
$sonuclar1 = mysql_query( "SELECT id, post_name, post_title FROM wp_posts ORDER by id DESC limit 0,10");
while($row=mysql_fetch_assoc($sonuclar1))
{
echo "<a href=\"http://www.siteadi.com/$row[post_name]\" title=\"$row[post_title]\">";
echo "$row[post_title]</a><br />";
}
?>
Açıklamalar
Yukarıdaki kod sayesinde wp_posts tablosuna bağlandık (eğer tablo ön ekini değiştirdiyseniz wp yerine değiştirdiğiniz ön eki yazın) yazıların id sıralamasına göre id, post_name, post_title, verilerini çektik.
id: yazı id’si.
post_name: yazı kalıcı bağlantısı.
post_title: yazı başlığı.
$row[post_title]
yazdığınız yerde yazı başlığınız görüntülenir.
Üstte verdiğim örnekle veritabanından diğer verileri de çekebilirsiniz mesela post_content ile yazı içeriğini çekebilirsiniz.
Listelenecek yazı adedi
Şuan 10 adet yazı listeleniyor, aşağıdaki satırda 10 yazan yer listenecek yazı adetini belirtiyor ihtiyacınıza göre düzeltebilirsiniz.
$sonuclar1 = mysql_query( "SELECT id, post_name, post_title FROM wp_posts ORDER by id DESC limit 0,10");
Kalıcı bağlantı kullanmıyorsanız
Kalıcı bağlantı kullanmıyorsanız kodlarda ufak bir değişiklik yapmalı, aşağıdaki satırda yaptığım gibi post_name yazan yeri id olarak değiştirmelisiniz.
echo "<a href=\"http://www.siteadi.com/$row[id]\" title=\"$row[post_title]\">";
Yazı sürümleri ve otomatik kayıt problemi
Yazı sürümleri wordpess 2.6′dan baÅŸlayıp günümüze kadar gelen (3.0) wordpress sürümlerinde mevcut. Son x yazıyı listelerken eÄŸer yazı sürümleri ve otomatik kayıt özelliÄŸi açıksa wp_posts tablosuna aynı baÅŸlıklı bir/birçok yazı daha ekliyor. Bu da aynı isimde kayıtlar listelemeye sebep oluyor. Zaten çoÄŸu wordpress kullanıcısı yazı sürümleri özelliÄŸini kapatmış. yazı sürümleri özelliÄŸini kapatmak için wp-config.php dosyasını açıp en alt satıra ÅŸu kodu yazmalısınız:
define('WP_POST_REVISIONS', false);
Yazı Sürümlerini Silmek için buraya
Autosave özelliğini kapatmak ve diğerlerini silmek için buraya
Türkçe karakter problemi
Eğer türkçe karakter problemiyle karşılaşırsanız aşağıdaki kodu
mysql_query("SET NAMES 'utf8'");
şu kodunun altına ekleyin:
if (!@mysql_select_db($dbdata)) {
die("Veritabanı seçilemedi<br>HATA: ".mysql_error());
}
Şu şekilkde görünecek:
if (!@mysql_connect($dbhost, $dbuser, $dbpass)) {
die("Veritabanına bağlanılamadı...<br>HATA: ".mysql_error());
}
if (!@mysql_select_db($dbdata)) {
die("Veritabanı seçilemedi<br>HATA: ".mysql_error());
}
mysql_query("SET NAMES 'utf8'");
WordPress veritabanından yazı çekmeyi ve karşılaÅŸtığım problemleri detaylı anlatmaya çalıştım, daha detaylı anlatım için php ve html’yi giriÅŸ bölümünden anlatmaya baÅŸlamak gerekiyor sanırım..
Şimdilik bu kadar. Hızlıca yazdım, eskikler olabilir veya eklemek istedikleriniz olabilir. Yorum formu aracılığıyla yazarsanız cevaplamaya çalışırım.
define('WP_POST_REVISIONS', false);, post_name, post_title, veritabanı, veritabanına bağlanmak, veritabanından son 10 yazıyı çekmek, veritabanından veri çekmek, Wordpress, wordpress son 10 yazıyı listelemek, Wordpress ten yazı çekmek, Wordpress veritabanı, wordpress veritabanından son 10 yazıyı çekmek, Wordpress veritabanından veri çekmek, wordpress'e bağlanmak, Wordpressden yazı çekmek, WP_POST_REVISIONS, Yazı Sürümlerini Silmek

Bir Yorum to “WordPress veritabanından veri çekmek”
Yorum Aparatı






doruk10 Ocak 2012
TeÅŸekkür ediyorum. Tam aradığım ÅŸeyi pat diye burda buldum. Yanlız yazı 2010′da yazılmış güncel wordpress ile ilgili yada sonrada karşılaÅŸtığın hara çözümleriyle ilgili bir geliÅŸme varsa güncelleme yapabilirmisin yazıda?