Yeni Cevap 
 
Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Wordpress Mimari Yapısı
Yazar Mesaj
duzgun Çevrimdışı
Hizmetinizde
*******

Mesajlar: 2,323
Katılım: Jul 2008
Rep Puanı: 17
Mesaj: #1
Wordpress Mimari Yapısı
WordPress MVC mimarisinde değildir fakat istenirse MVC tabanlı pluginler kullanılarak tam anlamıyla olmasada bu eksiklik kapatılabilir.
Temelde core(çekirdek), plug-in(eklenti) ve template(tema) dan oluşan kabul görmüş ve beğenilmiş bir altyapıya sahiptir.

Core sisteminin kullanıma hazır olarak sunduğu fonksiyonlar ve sınıflar kullanarak template dizininizdeki php dosyalarınızı kolay bir şekilde oluşturup plug-in ile daha fonksiyonel hale getirmenizi amaçlamaktadır.

[Resim: wordpress_basic_structure.gif]

Yukarıdaki resimde wordpress in temel yapısı görülmektedir. Bu temel yapıyla ilgili olarak template sisteminden bahsedelim. Template dosyalarını wordpress e dahil eden çekirdek dosya wp-includes/template-loader.php dir.
Kod:
is_404, is_search, is_tax, is_front_page, is_home, is_attachment, is_single, is_page, is_category, is_tag, is_author, is_date, is_archive, is_comments_popup, is_paged
durumları sorgulanarak $template değişkenine get_X_template biçiminde yine hazır fonksiyonların döndürdüğü dosya yolunu atamaktadır.
PHP Kod:
include( $template );
/*echo $template;
/? => wp-content/themes/twentyeleven/index.php
/?cat=1 => /wp-content/themes/twentyeleven/category.php  
*/ 
biçiminde de sayfaya dahil edilmektedir.

Veritabanından bilgi çağırmak için oluşturulan kriterlere sorgu denilmektedir. Wordpress de sorgu işlemleri de daha basit hale getirilmeye çalışılmış. Loop ile adlandırılan bir yöntemle sorgu sonucu gelen kayıtlar okunmaktadır. Yine herbir işlem yada bilgi için hazır fonksiyonlar kullanılmaktadır.
Sorgu işlerinden sorumlu dosya ise wp-includes/query.php dir.
WordPress mimarisinde, Sorgular WP_Query () ve query_posts () olmak üzere iki şekilde yapılmaktadır. WP_Query () ve query_posts () yöntemlerinin kullanımı arasında belirgin bir fark vardır. Aşağıdaki örnekle bu kullanım farkını göstermeye çalışalım.
PHP Kod:
<?php
class WP_Query {
  var 
$query;
  var 
$query_vars = array();
  public 
$value 42;
  public function &
query() {
    return 
$this->get_posts();
  }
  function &
get_posts() {
  
$return = &$this->value;
  return 
$return;
  }
}

function &
query_posts($query) { // referansını döndür.
    
unset($GLOBALS['wp_query']);
    
$GLOBALS['wp_query'] = new WP_Query(); // & new WP_Query(); kullanımına php 5 de gerek yok.
    
return $GLOBALS['wp_query']->query($query);
}

$wp_the_query =  new WP_Query();
$wp_query =& $wp_the_query;

$myValue = &$wp_the_query->query(); //referans değerini ata
$wp_the_query->value 2;
echo 
$myValue."<br>";

echo 
query_posts('');
//class dışında & kullanımı referans değerini döndürür veya referans değerini al anlamına gelir. 
?>

query_posts() fonksiyonu $wp_query değişkenine müdahale etmektedir. Bu ve benzer nedenlerden ötürü yalnızca ana sayfada döngü değiştirmek için kullanılmak üzere tasarlanmıştır. ikincil döngüler için tasarlanmamıştır. İkincil döngüler için WP_Query() sınıfı tasarlanmıştır.

Basit bir index sayfası tasarlayalım.
PHP Kod:
<?php
get_header
();
if (
have_posts()) :
   while (
have_posts()) :
      
the_post();
      
the_content();
   endwhile;
endif;
get_sidebar();
get_footer(); 
?>

index sayfasını wordpress yönetim panelinde
Appearance(Görümün) -> Editör den de düzenleyebiliriz. Yazımız eğitim ve wordpress i öğrenme amaçlı olduğu için bu bölümdeki index.php içindekileri bir yere not edip yukarıdaki kodları yazınız. Görüldğü gibi Loop olayı template dosyalarınızın içinde bulunmaktadır. Loop un içinde template dosyalarınız değil. Yukarıdaki resimde herbir dosyanın içine loop yazmaktasa tek bir loop yazılmıştır.
Kodlamadaki
PHP Kod:
while () :
endwhile;
if () :
elseif():
else:
endif; 
ifadeleri kullanım php sunduğu alternatif bir yöntemdir.
PHP Kod:
while (){
}
if () {
}
elseif(){
}
else{

ile aynı de yazılabildiği gibi php dili kullanım tercihini size bırakmaktadır.
get_header() -> include('header.php');
get_sidebar() -> include('sidebar.php');
get_footer() -> include('footer.php');
fonksiyonları karşılık olan dosyaları dahil etmek(include) için oluşturulmuş kullanıma hazır fonksiyonlardır.
Sorguda kayıt olup olmamasını kontrol eden have_posts() fonksiyonu kullanılmıştır. the_post(); cursor olarak tanımlanabilir. postları oku ve bir sonraki tur için kontrol edilecek kayıt sayısı değerini 1 arttır. arttırılan değere bağlı kayıt olup olmamasını while döngüsünde have_posts() tekrar kontrol edecektir ve döngünün devamının olup olmadığına karar verecektir.
Devamında gelen the_content(), the_title() fonksiyonları ise hazır olarak sunulmuş sorgu sonrası gelen değerlerin tutulduğu öntanımlı fonksiyonlardır. En başta query_posts() tanımı yapmadık bunun nedeni de index sayfası olduğu için boş parametre gönderek yüklenme esnasında otomatik her defasında query_posts() in çalıştırılmasıdır.

Loop içinde get_template_part('content'); kullanarakta bir deneme yapabilirsiniz. kullanım biçimi için http://codex.wordpress.org/Function_Refe...plate_part adresinden faydalanabilirsiniz.

Kullandığımız bu loop, query_posts () sorgusu ile kullanılmıştır ve diğer adı Default Loop dur. İkincil döngü olan WP_Query() ise Nested Loop diye adlandırılır. http://codex.wordpress.org/The_Loop adresinde örnekler bulunmaktadır.

Artık kendiniz araştırarak ve kullanıma hazır fonksiyonları deneyerek ve bol bol örnek yaparak wordpress geliştiriciliğe ilk adımı atabilirsiniz.

Sonuç olarak wordpress yazımızın başında da yazdığımız gibi kullanıma hazır fonksiyonların bol olduğu, ayrıca binlerce eklentiyle ve temayla yazılımcılar ve tasarımcılar tarafından geniş bir şekilde desteklenen bir sistemdir.

Bu yazımızda wordpress in temel yapıtaşlarının bir php yazılımcısı tarafından kola bir biçimde anlaşılmasını amaçladık. Sonraki wordpress yazılarımızda görüşmek dileğiyle. Saygılar Sunarız.


©duzgun.com Harici yayınlanamaz. Link verilebilir Smile
30-10-2011 17:41
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
duzgun Çevrimdışı
Hizmetinizde
*******

Mesajlar: 2,323
Katılım: Jul 2008
Rep Puanı: 17
Mesaj: #2
RE: Wordpress Mimari Yapısı
Konuya cevap olarak paylaşımda bulunabilirsiniz. Merak ettiklerinizi sorabilirsiniz.
01-11-2011 01:37
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
Oguzz13 Çevrimdışı
Member
***

Mesajlar: 16
Katılım: Jun 2011
Rep Puanı: 0
Mesaj: #3
RE: Wordpress Mimari Yapısı
Selamlar,

Bir wordpress blog'umuzda, hosting'de bir subdomain oluşturup, (odeme.domainname.com gibi bir şey) oluşturduğumuz sub-domain'e de opencart ya da oscommerce kurabilir miyiz?
27-11-2011 20:50
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
snowbird Çevrimdışı
Administrator
*******

Mesajlar: 2,239
Katılım: Jul 2008
Rep Puanı: 23
Mesaj: #4
RE: Wordpress Mimari Yapısı
Kurulabilir
28-11-2011 08:47
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
sergio_7 Çevrimdışı
Junior Member
**

Mesajlar: 9
Katılım: Apr 2012
Rep Puanı: 0
Mesaj: #5
RE: Wordpress Mimari Yapısı
Wordpress olayına girmek lazım. Çok stabil hale geldi e-ticaret de yapılıyor artık. Hazır temaları da çok güzel... Ama forza OSCommerce Smile
03-09-2012 15:07
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
filiz Çevrimdışı
Member
***

Mesajlar: 35
Katılım: Nov 2011
Rep Puanı: 0
Mesaj: #6
RE: Wordpress Mimari Yapısı
merhaba arkadaşlar,
wordpress üzerine kurulu bir satış sitesine tedarikçi entegrasyonu yapabilecek bir eklenti var mı?
yardımcı olursanız sevinirim.
şimdiden teşekkürler

"Herkes en az bir yetenekle gönderilir"
25-12-2012 13:09
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
Yeni Cevap 


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
Question Olmazsa olmaz WordPress eklentileri ve tanıtımı snowbird 2 3,390 28-10-2011 20:40
Son Mesaj: snowbird

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi