<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">

<channel>
	<title>Cem Demir</title>
	
	<link>http://www.cemdemir.net</link>
	<description>Bilişim, Teknoloji ve Tasarım Günlüğü</description>
	<lastBuildDate>Mon, 21 May 2012 19:09:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cemdemir/cDnm" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="cemdemir/cdnm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Bilişim, Teknoloji ve Tasarım Günlüğü</itunes:subtitle><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">cemdemir/cDnm</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Üniversite Bana Ne Öğretti / Öğretiyor ?</title>
		<link>http://www.cemdemir.net/benim-dunyam/universite-bana-ne-ogretti-ogretiyor-1515.html</link>
		<comments>http://www.cemdemir.net/benim-dunyam/universite-bana-ne-ogretti-ogretiyor-1515.html#comments</comments>
		<pubDate>Thu, 19 Apr 2012 22:13:33 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Benim Dünyam]]></category>
		<category><![CDATA[Bilgisayar Mühendisliği]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Trakya Üniversitesi]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1515</guid>
		<description><![CDATA[Merhaba, bildiğiniz üzere ben Trakya Üniversitesinde Bilgisayar Mühendisliği bölümünü okumaktayım. Okuyorum ama ne öğreniyorum orası biraz karışık. Öğrenmek üzerine ben de biraz atıp tutmak, yazmak istiyorum. Başlamadan önce söylemeliyim ki, yazı bilgisayar mühendisliğine yönelik olup, bazı genellemeler içermektedir. Sonra okuyup bana kızmayın. Herhangi birşeyi öğrenmek için genellikle çabalamanız gerekir. Esasen, birşeyi tam öğrenmek ve bunun [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba, bildiğiniz üzere ben <span style="color: #ff6600;"><strong>Trakya Üniversitesi</strong></span>nde <span style="color: #ff6600;"><strong>Bilgisayar Mühendisliği</strong></span> bölümünü okumaktayım. Okuyorum ama ne öğreniyorum orası biraz karışık. Öğrenmek üzerine ben de biraz atıp tutmak, yazmak istiyorum.</p>
<p>Başlamadan önce söylemeliyim ki, yazı bilgisayar mühendisliğine yönelik olup, bazı genellemeler içermektedir. Sonra okuyup bana kızmayın.<span id="more-1515"></span></p>
<p>Herhangi birşeyi öğrenmek için genellikle çabalamanız gerekir. Esasen, birşeyi tam öğrenmek ve bunun uzun süreli olmasını sağlamak zaten ancak kendi çabanızla mümkündür. Kimse size zorla birşeyler öğretemez.</p>
<p>Mesela ben integrali kimseden öğrenmedim. Zaten bana kimse integrali öğretemez, önüme bir kitap koyun öğreneyim.</p>
<p>Mesela ben C programlama dilini kimseden öğrenmedim. Okudum, araştırdım ve kendime yetecek kadarını öğrendim.</p>
<p>Mesela ben elektrik devreleri ile ilgili hiçbir şeyi hocalarımdan öğrenmedim. Kitapta ne varsa onu okudum ve o kadarını öğrendim.</p>
<p>O zaman adama sorarlar, bu üniversite hocaları ne iş yapar diye. Akademik çalışmalarını bir yana bırakarak, öğrenciye ne verebilirler sorusunu düşündüm.</p>
<p>Birçoğu size hiçbir şey katmaz. Sadece o hocayı tecrübe etmiş olursunuz. Hocanın dersini geçersiniz ve 3-5 ay sonra o dersle ilgili öğrendiklerinizi unutmaya başlarsınız.</p>
<p>Hocaların yapabileceği en iyi şey, size dersi sevdirmektir. İşte bunu yapabilen hocalar benim için özeldir. Her ne kadar benim için özel olsalar da onlar da bana birşey öğretemezler. Bana dersi sevdirdikten sonra zaten öğretmeleri de gerekmez. Ben zaten öğrenmiş olurum.</p>
<p>İsim vermek ne kadar doğrudur bilmiyorum fakat, benim için özel olan 2 hocam var: <a href="http://yilmazkilicaslan.trakya.edu.tr/">Yılmaz Kılıçaslan</a> ve <a href="http://altanmesut.trakya.edu.tr/">Altan Mesut</a>.</p>
<p><strong>Yılmaz Kılıçaslan</strong>&#8216;dan <strong>Nesneye yönelik programlama</strong> dersini aldım. Ve neden benim için özel olduğunu anlatayım. Çünkü Yılmaz hocam öğrenciye çok saygılıdır, her zaman öğrenciyle etkileşime girmeye çalışır. Çok zeki ve bilgili birisi olmasına rağmen egosu sıfırdır. Ben Yılmaz hocamdan C++&#8217;ı değil, bir topluluk önünde nasıl konuşulur, nasıl davranılır onu öğrendim. C++&#8217;ı ise zaten kendim öğrenmiştim.</p>
<p><strong>Altan Mesut</strong>&#8216;dan <strong>Programlama dillerine giriş</strong> ve <strong>Veri tabanı yönetim sistemleri</strong> dersini aldım. 2 dersi de tahmin edeceğiniz üzere kendim öğrendim. Fakat bunda Altan hocamın etkisi çok büyüktü. Altan hocamın en sevdiğim özelliği herşeyi sistematik bir şekilde yapmasıydı. Neyi ne zaman işleyeceği belliydi ve ben bu şekilde derse daha geniş bir perspektiften bakabiliyordum. Öğrenciyi cesur bir şekilde zorlaması ise hayran olduğum başka bir özelliğiydi. Zaten bir üniversite, öğrencileri zorladığı ölçüde iyidir diye düşünüyorum.</p>
<p>Sonuç olarak hocaların kişisel özellikleri ne kadar iyi ise ben o dersi o kadar iyi öğreniyorum. Garip ama bu benim için böyle.</p>
<p>Ve en son cümlem şöyle olsun : üniversitede öğreneceğiniz tek şey, üniversitede birşey öğrenemeyeceğinizdir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/benim-dunyam/universite-bana-ne-ogretti-ogretiyor-1515.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress Tema Yapımı : Tekil Yazı ve Sayfa Şablonları</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tekil-yazi-ve-sayfa-sablonlari-1479.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tekil-yazi-ve-sayfa-sablonlari-1479.html#comments</comments>
		<pubDate>Sat, 17 Mar 2012 13:30:05 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Etiketler]]></category>
		<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[Sayfa şablonu]]></category>
		<category><![CDATA[Tekil yazı şablonu]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>
		<category><![CDATA[Yazar hakkında bölümü]]></category>
		<category><![CDATA[Yazı bilgilerini gösterme]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1479</guid>
		<description><![CDATA[Ziyaretçileriniz, sizin WordPress admin panelinden oluşturduğunuz sayfaların herhangi birinde gezerken, page.php dosyası çalıştırılır. Ya da o dosyayı oluşturmadıysanız index.php dosyası çalıştırılır. Yine aynı şekilde, ziyaretçileriniz herhangi bir yazının içine girdiğinde ise single.php dosyası çalıştırılır. WordPress tema yapımı yazılarımın bu kısmında Sayfa şablonu ve Tekil yazı şablonlarından bahsedeceğim ve Lorem Ipsum adlı temamızı biraz daha geliştireceğiz, [...]]]></description>
			<content:encoded><![CDATA[<p>Ziyaretçileriniz, sizin <span style="color: #008000;"><strong>WordPress</strong></span> admin panelinden oluşturduğunuz <strong>sayfaların herhangi birinde</strong> gezerken, <span style="color: #ff00ff;"><strong>page.php</strong></span> dosyası çalıştırılır. Ya da o dosyayı oluşturmadıysanız index.php dosyası çalıştırılır.</p>
<p>Yine aynı şekilde, ziyaretçileriniz herhangi <strong>bir yazının içine girdiğinde</strong> ise <span style="color: #ff00ff;"><strong>single.php</strong></span> dosyası çalıştırılır.</p>
<p><span style="color: #ff6600;"><strong>WordPress tema yapımı</strong></span> yazılarımın bu kısmında <span style="color: #008000;"><strong>Sayfa şablonu</strong></span> ve <strong><span style="color: #008000;">Tekil yazı</span></strong> şablonlarından bahsedeceğim ve <span style="color: #008000;"><strong>Lorem Ipsum</strong></span> adlı temamızı biraz daha geliştireceğiz, özelleştireceğiz.<span id="more-1479"></span></p>
<h3>page.php ve single.php Dosyalarında Ne Olmalı ?</h3>
<ul>
<li><a href="http://www.cemdemir.net/wp-tema-yapimi/page.png">Sayfa Şablonu</a></li>
<li><a href="http://www.cemdemir.net/wp-tema-yapimi/single.png">Tekil Yazı Şablonu</a></li>
</ul>
<p>Öncelikle kendimize bir sayfa şablonunda ya da tekil yazı şablonunda, index şablonundan farklı olarak <strong>ne bulunması gerekir</strong>, <strong>ne bulunmaması gerekir</strong> diye sormalıyız. Ben aşağıda birkaç şey sıraladım fakat siz isterseniz çok daha farklı özellikler ekleyip, çıkarabilirsiniz.</p>
<p><strong>Index&#8217;de</strong> olduğu gibi birden fazla yazı göstermek yerine, sadece <strong>bir yazı</strong> göstereceğiz.</p>
<p>Nerede olduğumuzu belirten, <strong>bilgilendirici bir bölüm</strong> ekleyeceğiz.</p>
<p>Her iki şablona da <strong>yorum bölümleri</strong> ekleyeceğiz. Fakat bunu, bu yazıda değil de bir sonraki yazıda daha detaylı anlatmaya çalışacağım.</p>
<p>Bir sayfanın kategorisi olamayacağı için, yazı bilgileri kısmından<strong> kategori bilgisini çıkaracağız</strong>. <strong>Tekil yazı da</strong> bunu <strong>değiştirmeyeceğiz</strong>.</p>
<p>Tekil yazı şablonunda, yazıya atanmış <strong>etiketleri</strong> göstereceğiz.</p>
<p>Aynı şekilde yine tekil yazı şablonunda, <strong>yazar hakkında</strong> bölümü oluşturacağız.</p>
<p>Şimndilik yapacaklarımızı bunlarla sınırlayıp, yazıya devam ediyorum.</p>
<h2>Sayfa Şablonunun Oluşturulması &#8211; page.php</h2>
<p>Öncelikle index.php dosyasından faydalanarak bir <strong>kopya</strong> oluşturun ve adını <strong>page.php</strong> olarak değiştirin. Çünkü birçok yönden <span style="color: #ff00ff;"><strong>index.php</strong></span> ve page.php birbirine benzeyecek, çok küçük farklılıklar olacak. Biz de zaten bu farklılıkara göz atacağız.</p>
<p>Bir sayfanın içindeyken, page.php dosyasının çalıştırıldığını kanıtlamak için aşağıdaki gibi bir bölüm oluşturalım ;</p>
<pre class="brush: html">&lt;div class="where-am-I"&gt;

   &lt;p&gt;Burası page.php şablonu&lt;/p&gt;

&lt;/div&gt;</pre>
<p>Sayfamızın <strong>başlığını</strong>, <strong>içeriğini</strong> veya <strong>bilgilerini</strong> göstermek için, index.php&#8217;de olduğu gibi yine <strong>döngü</strong> kullanmamız gerekiyor. Fakat biz zaten page.php&#8217;yi, index.php dosyasından yararlanarak(kopyalayarak) oluşturduğumuz için, tekrar kod yazmamıza gerek yok. Sadece yazı bilgilerinde ufak bir düzeltme yapacağız. Yukarıda da dediğim gibi bir sayfanın kategorisi olmaz, yazı bilgileri kısmını şu şekilde değiştirebiliriz.</p>
<pre class="brush: html">&lt;!-- Yazı bilgileri --&gt;
&lt;ul&gt;
   &lt;li&gt;Tarih : &lt;?php the_time('j F Y'); ?&gt;&lt;/li&gt;
   &lt;li&gt;&lt;?php comments_number('Yorum Yok', '1 Yorum ', '% Yorum' );?&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Sayfalar da da <span style="color: #ff6600;"><strong>küçük resim özelliği</strong></span>ni kullanabilirsiniz. Fakat ben bu bölümü page.php şablonundan çıkardım, eğer isterseniz tekrar ekleyebilirsiniz.</p>
<p>page.php&#8217;yi index.php&#8217;den yararlanarak oluşturduğumuz için, <strong>devamını oku</strong> bölümü de beraberinde geldi. Fakat bu bölüm sayfa şablonu için gereksiz, bu yüzden o kısmı da çıkardım.</p>
<p>Son olarak <strong>yorumların gösterileceği bir bölüm</strong> oluşturacağım, fakat içeriğini bir sonraki yazıda dolduracağım ;</p>
<pre class="brush: html">&lt;div class="comments"&gt;

   &lt;p&gt;Yorum bölümü daha sonra eklenecek...&lt;/p&gt;

&lt;/div&gt;</pre>
<p>page.php dosyamız hazır, artık bir sayfaya girildiğinde page.php dosyası çalıştırılacak.</p>
<h2>Tekil Yazı Şablonunun Oluşturulması &#8211; single.php</h2>
<p>single.php dosyasını, page.php dosyasından <strong>kopyalayarak</strong> oluşturabilirsiniz, yine birçok kısım aynı olacak.</p>
<p><strong>Bilgilendirici mesajı</strong> oluşturalım ;</p>
<pre class="brush: html">&lt;div class="where-am-I"&gt;

   &lt;p&gt;Burası single.php şablonu&lt;/p&gt;

&lt;/div&gt;</pre>
<p>Daha sonra page.php&#8217;de sildiğimiz <strong>kategori bilgisini</strong> ekleyelim ;</p>
<pre class="brush: html">&lt;!-- Yazı bilgileri --&gt;
&lt;ul&gt;
   &lt;li&gt;Tarih : &lt;?php the_time('j F Y'); ?&gt;&lt;/li&gt;
   &lt;li&gt;Kategori : &lt;?php the_category(', ') ?&gt;&lt;/li&gt;
   &lt;li&gt;&lt;?php comments_number('Yorum Yok', '1 Yorum ', '% Yorum' );?&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Daha sonra yazıya atanmış <span style="color: #008000;"><strong>küçük resim özelliğini</strong></span> ekleyelim ;</p>
<pre class="brush: html">&lt;div class="article-thumbnail"&gt;

   &lt;!-- Yazının küçük resmi --&gt;
   &lt;?php if ( has_post_thumbnail()) { ?&gt;

      &lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_post_thumbnail('index-thumbnail'); ?&gt;&lt;/a&gt;

   &lt;?php } ?&gt;

&lt;/div&gt;</pre>
<p>Yazıya atanmış <span style="color: #008000;"><strong>etiketleri</strong></span> gösterelim ;</p>
<pre class="brush: html">&lt;div class="tags"&gt;

   &lt;p&gt;&lt;span&gt;Etiketler&lt;/span&gt; : &lt;?php the_tags('',', ','') ?&gt;&lt;/p&gt;

&lt;/div&gt;</pre>
<p><span style="color: #ff6600;"><strong>the_tags</strong></span> fonksiyonu, gördüğünüz üzere, veri tabanından etiketleri çekiyor ve yazdırıyor.</p>
<p><strong>Yazar hakkında</strong> bölümünü oluşturalım, yazar hakkında bölümünü oluşturmak için birkaç adet fonksiyon kullanacağız.</p>
<pre class="brush: html">&lt;div class="author"&gt;

   &lt;?php echo get_avatar( get_the_author_id() , 64 ); ?&gt;

   &lt;p&gt;Yazar Hakkında : &lt;?php the_author_posts_link(); ?&gt;&lt;/span&gt;

   &lt;p&gt;&lt;?php the_author_description(); ?&gt;&lt;/p&gt;

&lt;/div&gt;</pre>
<p><span style="color: #ff6600;"><strong>get_avatar</strong></span> fonksiyonundan bahsetmeden önce <a href="http://gravatar.com/">gravatar</a> adlı siteden bahsetmeliyim.</p>
<p><span style="color: #ff00ff;"><strong>Gravatar</strong></span>, wordpress&#8217;in desteklediği bir sitedir. Bu siteye bir mail adresi ile üye olursunuz ve kendinize bir avatar belirlersiniz. Bu avatar sizin mail adresinize atanır. Bundan sonra herhangi bir wordpress tabanlı siteye, o mail adresi ile yorum yaptığınızda belirlediğiniz avatar görünür. Yani mail adresinizden, avatarınız çekilir.</p>
<p>İşte get_avatar fonksiyonu da tam olarak bunu yapmaktadır. İçine birkaç parametre alır, ben 64 yazarak avatarın 64px genişlik ve 64px yükseklikte olmasını istediğimi belirtiyorum. Siz bu kısmı istediğiniz şekilde değiştirebilirsiniz.</p>
<p><span style="color: #ff6600;"><strong>the_author_posts_link</strong></span> fonksiyonu, yazıyı yazan yazarın ismini bir link olarak yazar. Linke basıldığında yazarın yazdığı yazılar listelenir.</p>
<p>Bildiğiniz üzere wordpress admin panelinin kullanıcılar sekmesinde tüm kullanıcılar listelenmektedir. Bu bölümdeki her kullanıcıya ait biyografik bilgiyi çekmek için <span style="color: #ff6600;"><strong>the_author_description</strong></span> fonksiyonu kullanılır.</p>
<p>Son olarak yorum bölümünü oluşturalım ;</p>
<pre class="brush: html">&lt;div class="comments"&gt;

   &lt;p&gt;Yorum bölümü daha sonra eklenecek...&lt;/p&gt;

&lt;/div&gt;</pre>
<p>Artık single.php dosyamızı da oluşturduk. Bir yazıya girildiğinde single.php dosyası çalıştırılacak.</p>
<p>Temanın son halini indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-6.rar">tıklayınız</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tekil-yazi-ve-sayfa-sablonlari-1479.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-6.rar" length="10293" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-6.rar" fileSize="10293" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Ziyaretçileriniz, sizin WordPress admin panelinden oluşturduğunuz sayfaların herhangi birinde gezerken, page.php dosyası çalıştırılır. Ya da o dosyayı oluşturmadıysanız index.php dosyası çalıştırılır. Yine aynı şekilde, ziyaretçileriniz herhangi bir yazın</itunes:subtitle><itunes:summary>Ziyaretçileriniz, sizin WordPress admin panelinden oluşturduğunuz sayfaların herhangi birinde gezerken, page.php dosyası çalıştırılır. Ya da o dosyayı oluşturmadıysanız index.php dosyası çalıştırılır. Yine aynı şekilde, ziyaretçileriniz herhangi bir yazının içine girdiğinde ise single.php dosyası çalıştırılır. WordPress tema yapımı yazılarımın bu kısmında Sayfa şablonu ve Tekil yazı şablonlarından bahsedeceğim ve Lorem Ipsum adlı temamızı biraz daha geliştireceğiz, [...]</itunes:summary><itunes:keywords>Wordpress, Etiketler, Gravatar, Sayfa şablonu, Tekil yazı şablonu, Wordpress tema yapımı, Yazar hakkında bölümü, Yazı bilgilerini gösterme</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Kategori, Arşiv ve Arama Şablonları</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kategori-arsiv-ve-arama-sablonlari-1400.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kategori-arsiv-ve-arama-sablonlari-1400.html#comments</comments>
		<pubDate>Sat, 18 Feb 2012 17:20:13 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Arama]]></category>
		<category><![CDATA[Arşiv]]></category>
		<category><![CDATA[get_search_query fonksiyonu]]></category>
		<category><![CDATA[get_the_date fonksiyonu]]></category>
		<category><![CDATA[Kategori]]></category>
		<category><![CDATA[the_category fonksiyonu]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1400</guid>
		<description><![CDATA[Daha önceki wordpress tema yapımı yazılarımda da bahsettiğim gibi, wordpress&#8216;de sitenin neresinde bulunuyorsanız onunla ilgili dosya çalıştırlır. Bu şekilde ziyaretçilerinize farklı durumlarda farklı şablonlar sunabilirsiniz. Bir kategorideyken category.php dosyası, bir ayın arşivine bakarken archive.php dosyası, bir aramanın sonuçları gösterilirken ise search.php dosyası çalıştırılır. Biz bu yazıda, bu 3 dosyayı ele alacağız. Bunun için öncelikle ilgili [...]]]></description>
			<content:encoded><![CDATA[<p>Daha önceki <span style="color: #ff6600;"><strong>wordpress tema yapımı</strong></span> yazılarımda da bahsettiğim gibi, <span style="color: #008000;"><strong>wordpress</strong></span>&#8216;de sitenin neresinde bulunuyorsanız onunla ilgili dosya çalıştırlır. Bu şekilde ziyaretçilerinize farklı durumlarda farklı <strong>şablonlar</strong> sunabilirsiniz.</p>
<p>Bir kategorideyken <strong><span style="color: #ff00ff;">category.php</span></strong> dosyası, bir ayın arşivine bakarken<span style="color: #ff00ff;"><strong> archive.php</strong></span> dosyası, bir aramanın sonuçları gösterilirken ise <span style="color: #ff00ff;"><strong>search.php</strong></span> dosyası çalıştırılır.</p>
<p>Biz bu yazıda, bu 3 dosyayı ele alacağız. Bunun için öncelikle ilgili dosyaların tasarımlarına bir bakalım ;</p>
<ul>
<li><a href="http://www.cemdemir.net/wp-tema-yapimi/category.png">Kategori Şablonu</a></li>
<li><a href="http://www.cemdemir.net/wp-tema-yapimi/archive.png">Arşiv Şablonu</a></li>
<li><a href="http://www.cemdemir.net/wp-tema-yapimi/search.png">Arama Şablonu</a></li>
</ul>
<p>Ben index dosyasına benzer şablonlar oluşturdum, tek fark olarak yazıların üstüne <strong>bilgi verici bir bölüm</strong> yerleştirdim. Siz isterseniz <strong>sağ yan menüyü kaldırabilir</strong>, isterseniz <strong>yazıları en sola çekebilirsiniz</strong>. Yani yaratıcılığınızın elverdiği düzeyde değişiklikler yapabilirsiniz.<span id="more-1400"></span></p>
<p><span style="color: #008000;"><strong>Kategori</strong></span>, <span style="color: #008000;"><strong>arşiv</strong></span> ve <span style="color: #008000;"><strong>arama</strong></span> şablonları, index şablonu ile çok benzer olduğu için index&#8217;den faydalanarak, tema klasörünüze ilgili dosyaları yaratabilirsiniz, ki ben de öyle yaptım.</p>
<h3>Kategori Şablonunun Oluşturulması</h3>
<p>index.php&#8217;den yararlanarak oluşturduğumuz category.php dosyasında, yazıların hemen üstünde görünecek bilgilendirici bir bölüm ekleyeceğiz.</p>
<pre class="brush: html">&lt;div class="where-am-I"&gt;

   &lt;p&gt;Burası category.php şablonu, &lt;?php the_category(',') ?&gt; kategorisindeki yazılar görüntüleniyor.&lt;/p&gt;

&lt;/div&gt;</pre>
<p><span style="color: #ff6600;"><strong>the_category</strong></span>(&#8216;,&#8217;) fonksiyonu içinde olduğunuz kategoriyi yazdırmaktadır.</p>
<p>Bu şekilde bir category.php dosyası oluşturup kendinize göre düzenlediğinizde, bir kategoriye girildiğinde index şablonundan farklı olarak category.php içindeki kodlar çalıştırılır.</p>
<h3>Arşiv Şablonunun Oluşturulması</h3>
<p>archive.php dosyasının bilgilendirme mesajı ise şu şekilde olacak ;</p>
<pre class="brush: html">&lt;div class="where-am-I"&gt;

   &lt;p&gt;Burası archive.php şablonu,
   &lt;strong&gt;&lt;?php printf( __( '%s' ), get_the_date( _x( 'F Y', '' ) ) . '&lt;/span&gt;' ); ?&gt;&lt;/strong&gt;
   ayındaki yazılar görüntüleniyor.&lt;/p&gt;

&lt;/div&gt;</pre>
<p><span style="color: #ff6600;"><strong>get_the_date</strong></span>() fonksiyonu içinde bulunduğunuz ayı barındırır, printf ile de bu gün yazdırlır. Aynı kategoride olduğu gibi, archive.php için bir şablon tanımladığımızdan, index.php dosyası yerine archive.php dosyası çalıştırılacak.</p>
<h3>Arama Şablonunun Oluşturulması</h3>
<p>search.php şablonunun bilgilendirme mesajı şu şekilde ;</p>
<pre class="brush: html">&lt;div class="where-am-I"&gt;

   &lt;p&gt;Burası search.php şablonu,
   &lt;strong&gt;&lt;?php printf( __( '%s' ), '' . get_search_query() ); ?&gt;&lt;/strong&gt;
   aramasının sonuçları görüntüleniyor.&lt;/p&gt;

&lt;/div&gt;</pre>
<p><span style="color: #ff6600;"><strong>get_search_query</strong></span>, aranılan kelimeyi tutar, yine printf ile bu kelime/kelime grubu yazdırılır.</p>
<p>Bir arama yapıldığında, temaya tanımladığımız bir search.php şablonu olduğundan dolayı, bu dosya çalıştırılacaktır.</p>
<p>Temanızı yukarıdaki şekillerde özelleştirmeye devam edebilirsiniz, benim yaptığım değişiklikler çok küçük olmakla beraber, sadece gösterme amaçlıdır. Sitenin farklı yerlerinde farklı dosyaların çalıştırılabileceğini göstermek içindir.</p>
<p>Tekrar belirtmekte fayda var, sitenin farklı bölümleri için farklı şablonlar tanımlamadıysanız, o bölümler index.php şablonu ile gösterilecektir.</p>
<p>Şu ana kadar temada hangi dosyaları kodladığımıza bir bakalım ;</p>
<ul>
<li>style.css</li>
<li>index.php</li>
<li>functions.php</li>
<li>header.php</li>
<li>sidebar-left.php</li>
<li>sidebar-right.php</li>
<li>footer.php</li>
<li>category.php</li>
<li>archive.php</li>
<li>search.php</li>
</ul>
<p><span style="color: #008000;"><strong>Lorem Ipsum</strong></span> adlı temamız yavaş yavaş bildiğiniz temalara benzemeye başladı sanırım. : ) Bir sonraki wordpress tema yapımı yazımda, tekil yazı ve sayfa şablonlarını da kodlayarak<strong> wordpress tema yapımı</strong> yazılarımı bitireceğim.</p>
<p>Temanın son halini indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-5.rar">tıklayınız</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kategori-arsiv-ve-arama-sablonlari-1400.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-5.rar" length="8584" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-5.rar" fileSize="8584" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Daha önceki wordpress tema yapımı yazılarımda da bahsettiğim gibi, wordpress&amp;#8216;de sitenin neresinde bulunuyorsanız onunla ilgili dosya çalıştırlır. Bu şekilde ziyaretçilerinize farklı durumlarda farklı şablonlar sunabilirsiniz. Bir kategorideyken cate</itunes:subtitle><itunes:summary>Daha önceki wordpress tema yapımı yazılarımda da bahsettiğim gibi, wordpress&amp;#8216;de sitenin neresinde bulunuyorsanız onunla ilgili dosya çalıştırlır. Bu şekilde ziyaretçilerinize farklı durumlarda farklı şablonlar sunabilirsiniz. Bir kategorideyken category.php dosyası, bir ayın arşivine bakarken archive.php dosyası, bir aramanın sonuçları gösterilirken ise search.php dosyası çalıştırılır. Biz bu yazıda, bu 3 dosyayı ele alacağız. Bunun için öncelikle ilgili [...]</itunes:summary><itunes:keywords>Wordpress, Arama, Arşiv, get_search_query fonksiyonu, get_the_date fonksiyonu, Kategori, the_category fonksiyonu, Wordpress tema yapımı</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Temayı Küçük Parçalara Ayırma</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kucuk-parcalar-1388.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kucuk-parcalar-1388.html#comments</comments>
		<pubDate>Fri, 17 Feb 2012 14:35:39 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Footer]]></category>
		<category><![CDATA[get fonksiyonu]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[include fonksiyonu]]></category>
		<category><![CDATA[Indexi parçarlara ayırma]]></category>
		<category><![CDATA[Küçük parçaları indexe ekleme]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1388</guid>
		<description><![CDATA[WordPress tema yapımı yazılarında şu ana kadar 3 dosya kullandık. Bunlardan ikisi olmazsa olmaz 2 dosya, index.php ve style.css dosyalarıydı. Ayrıca fonksiyonlarımızı barındırmak için de functions.php dosyasını kullandık. Şu an temamız index dosyasını kullanarak çalışacak. Bir kategoriye girdiğimizde bile index şablonu görünecek, yani sitenin neresinde olursanız olun size index şablonu görünecektir. Ana sayfadan farklı bir [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>WordPress tema yapımı</strong></span> yazılarında şu ana kadar 3 dosya kullandık. Bunlardan ikisi olmazsa olmaz 2 dosya, <span style="color: #ff00ff;"><strong>index.php</strong></span> ve <span style="color: #ff00ff;"><strong>style.css</strong></span> dosyalarıydı. Ayrıca fonksiyonlarımızı barındırmak için de <span style="color: #ff00ff;"><strong>functions.php</strong></span> dosyasını kullandık.</p>
<p>Şu an temamız index dosyasını kullanarak çalışacak. Bir kategoriye girdiğimizde bile index şablonu görünecek, yani sitenin neresinde olursanız olun size <strong>index şablonu görünecektir</strong>.</p>
<p>Ana sayfadan farklı bir yere gittiğinizde, mesela bir arama sonucuna gittiğinizde farklı bir şablon göstermek istiyorsanız, tema klasörüne <strong>arama ile ilgili dosyayı</strong> oluşturmanız gerekiyor. Ya da arşivleri görüntülemek istiyorsanız, <strong>arşivle ilgili dosyayı</strong> oluşturmanız gerekiyor.</p>
<p>Sitenin <strong>farklı</strong> yerlerinde <strong>farklı</strong> dosyalar çalıştırılırken, görünümde hep <strong>aynı</strong> olan yerleri belirlemek şu an atacağımız adım olacak. Mesela bizim temamızda <strong>en üst</strong> (header), <strong>en alt</strong> (footer), <strong>sol yan menü</strong> ve <strong>sağ yan menü</strong> hep aynı olacak. Değişecek olan kısım genellikle yazıların olduğu yer olacak.<span id="more-1388"></span></p>
<p>Aynı olacak bölümleri belirlememizin sebebini şu şekilde açıklayabilirim ; index.php dosyasında ve sonradan oluşturacağınız <span style="color: #ff00ff;"><strong>search.php</strong></span>, <span style="color: #ff00ff;"><strong>category.php</strong></span>, <span style="color: #ff00ff;"><strong>archive.php</strong></span> gibi dosyalarda aynı olacağını belirttiğim yerlerden birini değiştirmek istediğinizi, mesela sloganın yanına logo eklemek istediğinizi varsayın ; bu durumda index, search, category ve archive dosyalarına tek tek gidip ilgili kodu eklemeniz gerekir.</p>
<p>Fakat biz aynı olacak bölümlerin her birini, mesela en üst bölümü ele alalım (header), bir dosyada toplarsak ve bu dosyayı tüm sayfalara entegre edersek (index, search, category, archive, &#8230;), yapacağımız herhangi bir değişiklikte sonradan oluşturduğumuz dosyayı (header) değiştirmek yetecektir.</p>
<h3>Index dosyasının parçalara ayrılması</h3>
<p><strong>Site başlığını</strong>, <strong>sloganı</strong>, <strong>menüyü</strong> ve <strong>arama bölümünü</strong> <span style="color: #ff00ff;"><strong>header.php</strong></span> adlı bir dosyada toplayalım,</p>
<p><strong>Soldaki dinamik yan menüyü</strong>, <strong><span style="color: #ff00ff;">sidebar-left.php</span></strong> adlı bir dosyaya yerleştirelim,</p>
<p><strong>Sağdaki dinamik yan menüyü,</strong><span style="color: #ff00ff;"> <strong>sidebar-right.php</strong></span> adlı bir dosyaya yerleştirelim,</p>
<p><strong>En altta bulunan bilgileri</strong> de <span style="color: #ff00ff;"><strong>footer.php</strong></span> adında bir dosyaya koyalım.</p>
<p>Herbir dosyayı oluşturduktan sonra, index.php dosyasındaki ilgili kodları alıp, ilgili dosyaya yerleştirelim. En alttan temanın son halini indirerek nasıl yapıldığını görebilirsiniz.</p>
<p>Şu an elimizde bulunan dosyalara bir bakalım;</p>
<ul>
<li>index.php</li>
<li>style.css</li>
<li>functions.php</li>
<li>header.php</li>
<li>sidebar-left.php</li>
<li>sidebar-right.php</li>
<li>footer.php</li>
</ul>
<p>İyi, güzel parçalara ayrıma işlemini yaptık fakat o dosyaları <strong>index dosyasına entegre</strong> etmedik. Şimdi bu işlemi nasıl yapacağımız bakalım.</p>
<h3>Küçük parçaların index dosyasına entegre edilmesi</h3>
<p><span style="color: #ff6600;"><strong>WordPress</strong></span>, oluşturduğunuz header ve footer dosyaları için özel oluşturulmuş bir entegre fonksiyonu yaratmış, biz de bu fonksiyonu kullanacağız.</p>
<p>header.php&#8217;yi, index.php&#8217;ye entegre etmek için index.php dosyasına şu kod satırı ekleyin ;</p>
<pre class="brush: php">&lt;?php get_header(); ?&gt;</pre>
<p>Bu şekilde header.php içindeki kodlar, index.php içine yerleştirilmiş gibi olacak. Herhangi bir kod <strong>ekleme/çıkarma</strong> işlemi için header.php&#8217;yi değiştirmeniz <strong>yeterli</strong> olacaktır.</p>
<p>Aynı şekilde footer.php dosyasını da index.php&#8217;ye yerleştirelim ;</p>
<pre class="brush: php">&lt;?php get_footer(); ?&gt;</pre>
<p>Sırada oluşturduğumuz yan menüleri index&#8217;e yerleştirmek var. Eğer bizim sadece bir yan menümüz olsaydı, onu <strong>sidebar.php</strong> olarak ayrı bir dosyaya koyabilirdik ve yukarıdaki gibi get_sidebar(); fonksiyonunu kullanarak index&#8217;e ekleyebilirdik. Fakat 2 farklı sidebar&#8217;ımız olduğu için farklı bir yol izlememiz gerekiyor.</p>
<p>Yazmamız gereken kodlar şu şekilde ;</p>
<pre class="brush: php">&lt;?php include(TEMPLATEPATH."/sidebar-left.php"); ?&gt;

&lt;?php include(TEMPLATEPATH."/sidebar-right.php"); ?&gt;</pre>
<p>Sizin de fark edebildiğiniz üzere farklı şekillerde ekleme/entegre etme işlemi gerçekleştirilebiliyor. Burada bilinmesi gereken nokta, wordpress&#8217;in temalarda otomatik olarak tanıdığı dosyaları, mesela header.php, footer.php, sidebar.php gibi dosyaları daha kısa bir kodla ekleyebildiğimizdir. WordPress&#8217;in otomatik tanımadığı dosyaları ise yukarıdaki gibi include fonksiyonu ile istediğiniz yere ekleyebilirsiniz.</p>
<p>Temanın son halini indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-4.rar">tıklayınız</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-kucuk-parcalar-1388.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-4.rar" length="5633" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-4.rar" fileSize="5633" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>WordPress tema yapımı yazılarında şu ana kadar 3 dosya kullandık. Bunlardan ikisi olmazsa olmaz 2 dosya, index.php ve style.css dosyalarıydı. Ayrıca fonksiyonlarımızı barındırmak için de functions.php dosyasını kullandık. Şu an temamız index dosyasını kul</itunes:subtitle><itunes:summary>WordPress tema yapımı yazılarında şu ana kadar 3 dosya kullandık. Bunlardan ikisi olmazsa olmaz 2 dosya, index.php ve style.css dosyalarıydı. Ayrıca fonksiyonlarımızı barındırmak için de functions.php dosyasını kullandık. Şu an temamız index dosyasını kullanarak çalışacak. Bir kategoriye girdiğimizde bile index şablonu görünecek, yani sitenin neresinde olursanız olun size index şablonu görünecektir. Ana sayfadan farklı bir [...]</itunes:summary><itunes:keywords>Wordpress, Footer, get fonksiyonu, Header, include fonksiyonu, Indexi parçarlara ayırma, Küçük parçaları indexe ekleme, Sidebar, Wordpress tema yapımı</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Yazılar</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-yazilar-1357.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-yazilar-1357.html#comments</comments>
		<pubDate>Thu, 16 Feb 2012 14:50:10 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[İçerik Yönetim Sistemleri]]></category>
		<category><![CDATA[Öne çıkarılmış görsel desteği]]></category>
		<category><![CDATA[post_thumbnail fonksiyonu]]></category>
		<category><![CDATA[Sayfalama]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>
		<category><![CDATA[Yazı bilgilerinin gösterilmesi]]></category>
		<category><![CDATA[Yazıların listelenmesi]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1357</guid>
		<description><![CDATA[WordPress bir içerik yönetim sistemi olduğundan, admin panelinden yazılar yazıp, yazılarınızı yönetebilirsiniz. Bu yazıda blog yazılarının anasayfada ya da temanızın herhangi bir yerinde nasıl listeleneceğini göstererek wordpress tema yapımına devam edeceğiz. Konuya giriş yapmadan önce, işin arkaplanında programlama açısından neler olduğunu anlatmaya çalışayım. Bir yazı yazdığınızda, wordpress bu yazıyı öncelikle siteyi kurarken oluşturduğunuz veritabanına kaydeder. [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>WordPress</strong></span> bir <span style="color: #ff6600;"><strong>içerik yönetim sistemi</strong></span> olduğundan, admin panelinden yazılar yazıp, yazılarınızı yönetebilirsiniz. Bu yazıda <span style="color: #ff6600;"><strong>blog yazıları</strong></span>nın anasayfada ya da temanızın herhangi bir yerinde nasıl listeleneceğini göstererek <span style="color: #008000;"><strong>wordpress tema yapımı</strong></span>na devam edeceğiz.</p>
<p>Konuya giriş yapmadan önce, işin arkaplanında <strong>programlama</strong> açısından neler olduğunu anlatmaya çalışayım. Bir yazı yazdığınızda, <strong>wordpress</strong> bu yazıyı öncelikle siteyi kurarken oluşturduğunuz <strong>veritabanı</strong>na kaydeder. Veritabanında hali hazırda bulunan bu yazıyı/yazıları çekmek için bir <strong>sorgu</strong> yapılır. Bu sorgu ile birlikte gelen yazılar artık sitede gösterilebilir şekilde elinizde bulunur.<span id="more-1357"></span></p>
<p>Yazılar gösterilmek üzere elinize geldiğinde, bunları bir <span style="color: #008000;"><strong>döngü</strong></span> aracılığıyla gösterirsiniz. Döngü her işleyişinde bir yazıyı, daha doğrusu ona ait <strong>bilgileri</strong>, <strong>içeriği</strong> ve <strong>diğer özelliklerini</strong> yazdıracaktır.</p>
<p>Tabii bu anlattıklarım arkaplanda gerçekleşen işlemlerdir. Hepsini bilmenize gerek yok. Daha fazla karıştırmadan döngümüzü nasıl yaptığımıza bakalım ;</p>
<pre class="brush :php">&lt;?php if ( have_posts() ) : ?&gt;
// Eğer yazı varsa

   &lt;?php while ( have_posts() ) : the_post(); ?&gt;
   // Döngü başlar

      // Yazılar burada listelenir.

   &lt;?php endwhile; ?&gt;
   // Döngü biter

&lt;?php else : ?&gt;
// Eğer yazı yoksa, arşivde yazı yok mesajı verilir

&lt;?php endif; ?&gt;</pre>
<p>Döngüyü açtıktan sonra, yazı sayısı kadar işleyeceğini söylemiştim. Bu yazı sayısını admin panelinde bulunan <strong>ayarlar/okuma</strong> sekmesinden belirleyebilirsiniz.</p>
<p>Ayrıca buradaki döngünün kaç kere işleyeciğini <strong>manuel</strong> olarak da değiştirebilirsiniz, şu an biraz ileri düzey olacağı için geçiyorum.</p>
<p>Döngünün 5 kere tekrar edeceğini varsayalım. Her tekrar edişinde, bir yazıya ait tüm bilgileri veritabanından çeker. Bu bilgileri gösterip göstermemek size kalmıştır.</p>
<p>Biz döngü her tekrar edişinde, yazıya ait şu bilgileri göstereceğiz ;</p>
<ul>
<li>Başlığı</li>
<li>Tarihi</li>
<li>Kategorisi</li>
<li>Yorum sayısı</li>
<li>Küçük resmi</li>
<li>İçeriği</li>
</ul>
<p>O halde başlayalım. Ben burda kodların tamamını yazmayacağım. Açıklanması gereken yerleri açıklayacağım. Siz temanın son halini indirip oradan takip edebilirsiniz.</p>
<p>Döngüyü açıp arasına yazacağımız kodlara bakalım.</p>
<h3>Yazı başlığının gösterilmesi</h3>
<pre class="brush: html">&lt;h1&gt;
&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Permanent Link to &lt;?php the_title_attribute(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;
&lt;/h1&gt;</pre>
<h3>Yazı tarihi, kategori ve yorum sayısı</h3>
<pre class="brush: html">&lt;ul&gt;
   &lt;li&gt;Tarih : &lt;?php the_time('j F Y'); ?&gt;&lt;/li&gt;
   &lt;li&gt;Kategori : &lt;?php the_category(', ') ?&gt;&lt;/li&gt;
   &lt;li&gt;&lt;?php comments_number('Yorum Yok', '1 Yorum ', '% Yorum' );?&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<h3>Yazıya ait küçük resmin gösterilmesi</h3>
<p>Yazıya ait bir <span style="color: #ff00ff;"><strong>öne çıkarılmış görsel</strong></span> belirlemek, diğer bilgileri göstermekten daha zordur. Temaya yan menü desteği verirken yaptığımız gibi, yine <strong>functions.php</strong> dosyasına gidip bir fonksiyon yazmamız gerekiyor.</p>
<p>Kullanacağımız fonksiyon <span style="color: #008000;"><strong>post_thumbnail</strong></span>. Bu fonksiyonu aşağıdaki gibi kullanarak temanıza <span style="color: #ff6600;"><strong>öne çıkarılmış görsel desteği</strong></span> verebilirsiniz.</p>
<pre class="brush: php">if (function_exists('add_theme_support')) {

   add_theme_support( 'post-thumbnails' );
   set_post_thumbnail_size( 100, 100, true ); // default değer
   add_image_size('index-thumbnail', 100, 100, true);

}</pre>
<p>Aslında bir temaya öne çıkarılmış görsel desteği sağlamak ayrı bir yazıda, daha geniş anlatılması gereken bir konu. Bu yüzden <a href="http://www.yakuter.com/wordpress-yazi-resmi-thumbnail-ozelligi">yakuterin yazısına</a> bakmanızı tavsiye ediyorum.</p>
<p>functions.php dosyasıyla işimizi bitirdikten sonra döngümüzün içine geri dönüp, <strong>küçük resmimizi</strong> gösterelim ;</p>
<pre class="brush: html">&lt;?php if ( has_post_thumbnail()) { ?&gt;

   &lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_post_thumbnail('index-thumbnail'); ?&gt;&lt;/a&gt;

&lt;?php } ?&gt;</pre>
<h3>Yazı içeriğinin gösterilmesi</h3>
<pre class="brush: html">&lt;?php the_content(__(''));?&gt;</pre>
<p>Yazı içeriğini de gösterdikten sonra artık döngümüzü <strong>sonlandırabiliriz</strong>. Yazıya ait göstermek istediğimiz tüm bilgileri gösterdik. Biz bu işlemi sadece bir yazı için yaptık fakat yaptığımız işlem <strong>şablonu tanımlamaktı</strong>. Diğer tüm yazılar için de bu şablon geçerli olacak.</p>
<h3>Önceki ve sonraki yazıların gösterilmesi</h3>
<p>Yazılarınız listelenirken default olarak onar onar gösterilirler. Bu sayı yazının başında da belirttiğim gibi admin panelinden değiştirilebilir. Tüm yazılarınız listelenirken 10&#8242;dan fazla yazınız olduğunda yazılarınız sayfalara bölünerek gösterilirer. Bu işleme <span style="color: #ff6600;"><strong>sayfalama</strong></span> denir. Diğer sayfalara ulaşmak için ise şöyle bir yok izleyin ;</p>
<p>Döngünüzü kapattıktan sonra aşağdaıki kodları ekleyin ;</p>
<pre class="brush: html">&lt;div class="article-navigation"&gt;

   &lt;p class="art-nav-left"&gt;&lt;?php previous_posts_link('&amp;laquo; Önceki Yazılar') ?&gt;&lt;/p&gt;
   &lt;p class="art-nav-right"&gt;&lt;?php next_posts_link('Sonraki Yazılar &amp;raquo;','') ?&gt;&lt;/p&gt;

&lt;/div&gt;</pre>
<h4>Şu ana kadar</h4>
<p>Artık temamızın orta kısmını da, yani yazıların gösterilme kısmını da bitirmiş olduk. Çok az bir kısım kaldı. İsterseniz şimdiye kadar neler yaptığımıza bir bakalım ;</p>
<ul>
<li>Sitenin üst kısmını kodladık, site başlığı ve sloganı gösterdik,</li>
<li>Sayfaları ya da kategorileri listeleyen fonksiyonlara baktık,</li>
<li>Arama bölümü oluşturduk</li>
<li>Dinamik sol yan menü oluşturduk</li>
<li>Dinamik sağ yan menü oluşturduk</li>
<li>Yazıları listeledik</li>
<li>Her yazıya ait bilgileri nasıl gösterebileceğimize baktık</li>
</ul>
<p>Temanın son halini indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-3.rar">tıklayınız</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-yazilar-1357.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-3.rar" length="4599" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-3.rar" fileSize="4599" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>WordPress bir içerik yönetim sistemi olduğundan, admin panelinden yazılar yazıp, yazılarınızı yönetebilirsiniz. Bu yazıda blog yazılarının anasayfada ya da temanızın herhangi bir yerinde nasıl listeleneceğini göstererek wordpress tema yapımına devam edece</itunes:subtitle><itunes:summary>WordPress bir içerik yönetim sistemi olduğundan, admin panelinden yazılar yazıp, yazılarınızı yönetebilirsiniz. Bu yazıda blog yazılarının anasayfada ya da temanızın herhangi bir yerinde nasıl listeleneceğini göstererek wordpress tema yapımına devam edeceğiz. Konuya giriş yapmadan önce, işin arkaplanında programlama açısından neler olduğunu anlatmaya çalışayım. Bir yazı yazdığınızda, wordpress bu yazıyı öncelikle siteyi kurarken oluşturduğunuz veritabanına kaydeder. [...]</itunes:summary><itunes:keywords>Wordpress, İçerik Yönetim Sistemleri, Öne çıkarılmış görsel desteği, post_thumbnail fonksiyonu, Sayfalama, Wordpress tema yapımı, Yazı bilgilerinin gösterilmesi, Yazıların listelenmesi</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Dinamik Yan Menüler</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-dinamik-yan-menuler-1316.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-dinamik-yan-menuler-1316.html#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:43:00 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Dinamik bileşen desteği]]></category>
		<category><![CDATA[Dinamik sidebar yapımı]]></category>
		<category><![CDATA[Dinamik yan menü oluşturma]]></category>
		<category><![CDATA[register_sidebar fonksiyonu]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>
		<category><![CDATA[Yan menü oluşturma]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1316</guid>
		<description><![CDATA[Lorem Ipsum adlı wordpress temamızın üst kısmını buradaki yazıda kodlamıştık. Bu yazıda ise yan menüleri kodlayarak, wordpress tema yapımına devam edeceğiz. Bir temaya dinamik bir yapı kazandıran en önemli unsurlardan biri, admin panelinden yönetilebilir olmasıdır. Yan menülere admin panelinden bileşenler ekleyebilmek, kullanıcıyı gerçekten çok rahatladan bir özelliktir. Elbette biz de yan menülerimizi dinamik bir şekilde, [...]]]></description>
			<content:encoded><![CDATA[<p>Lorem Ipsum adlı <span style="color: #ff6600;"><strong>wordpress</strong></span> <span style="color: #008000;"><strong>tema</strong></span>mızın üst kısmını <a href="http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-2-1265.html">buradaki</a> yazıda kodlamıştık. Bu yazıda ise <span style="color: #008000;"><strong>yan menüleri</strong></span> kodlayarak, <span style="color: #ff00ff;"><strong>wordpress tema yapımı</strong></span>na devam edeceğiz.</p>
<p>Bir temaya <strong>dinamik bir yapı</strong> kazandıran en önemli unsurlardan biri, admin panelinden yönetilebilir olmasıdır. <strong>Yan menü</strong>lere admin panelinden <span style="color: #ff6600;"><strong>bileşen</strong></span>ler ekleyebilmek, kullanıcıyı gerçekten çok rahatladan bir özelliktir. Elbette biz de yan menülerimizi dinamik bir şekilde, <strong>admin panelinden bileşen eklenebilir</strong> olacak şekilde ayarlayacağız.<span id="more-1316"></span></p>
<p>Normalden farklı olarak <a href="http://www.cemdemir.net/wp-tema-yapimi/index.png">bizim temamızda</a> 2 adet yan menü seçeneği bulunuyor. Bu da daha önce 2 adet yan menü yapmamış olanlara umarım yarar sağlayacaktır.</p>
<h2>Dinamik Bileşenler Oluşturma</h2>
<p>Temaya <span style="color: #ff00ff;"><strong>dinamik yan menü desteği</strong></span> sağlamak için birkaç adet fonksiyon yazmamız gerekiyor. Bunun için <strong>functions.php</strong> adlı bir dosya oluşturacağız. Daha önce de bahsetmiş olduğum gibi, functions.php dosyası sizin temanıza özel fonksiyonları barındırması için düşünülmüştür.</p>
<p>Tema klasörünüze, functions.php dosyanızı oluşturduğunuzu varsayarak devam ediyorum.</p>
<p><span style="color: #ff6600;"><strong>register_sidebar</strong></span> fonksiyonu burada bize büyük kolay sağlamaktadır ;</p>
<pre class="brush: php">if ( function_exists('register_sidebar') ) {
   /* Yan menülerimizi burada belirteceğiz. */
}</pre>
<p><strong>register_sidebar</strong> fonksiyonu, bileşenler için özel olarak tasarlanmış bir fonksiyondur. Parametre olarak bazı değerler almaktadır. Mesela bu fonksiyonu kullanarak, bir bileşenden önce-sonra, bir bileşenin başlığından önce-sonra gelmesini istediğiniz kodları/html taglarını belirtebilirsiniz. Oldukça kullanışlı bir fonksiyondur.</p>
<pre class="brush: php">register_sidebar(array(
   'name' =&gt; 'Sol yan menü',
   'before_widget' =&gt; '&lt;div class="sidemenu-left"&gt;&lt;h3 class="widgettitle"&gt;',
   'after_widget' =&gt; '&lt;/div&gt;',
   'before_title' =&gt; '',
   'after_title' =&gt; '&lt;/h3&gt;',
));</pre>
<p>Benim yukarıdaki fonksiyonla oluşturmaya çalıştığım yapı aslında şudur ;</p>
<pre class="brush: php">&lt;div class="sidemenu-left"&gt;

   &lt;h3&gt;Bileşen başlığı&lt;/h3&gt;

   // Bileşenin içeriği

&lt;/div&gt;</pre>
<p>Bileşenin içerik kısmını genellikle bir liste oluşturmaktadır (kategoriler, sayfalar, bağlantılar, &#8230;) ya da bir paragraf (Metin) olabilir. Bileşenden bileşene göre değişir.</p>
<p>register_sidebar fonksiyonunu aldığı parametrelere göre istediğiniz şekilde özelleştirebilirsiniz, size kalmış.</p>
<p>functions.php içindeki kodları düzenleyip tekrar yazalım ;</p>
<pre class="brush: php">if ( function_exists('register_sidebar') ) {

   /* Sol Yan Menü */

   register_sidebar(array(
      'name' =&gt; 'Sol yan menü',
      'before_widget' =&gt; '&lt;div class="sidemenu-left"&gt;&lt;h3 class="widgettitle"&gt;',
      'after_widget' =&gt; '&lt;/div&gt;',
      'before_title' =&gt; '',
      'after_title' =&gt; '&lt;/h3&gt;',
   ));

   /* Sağ Yan Menü */

   register_sidebar(array(
      'name' =&gt; 'Sağ yan menü',
      'before_widget' =&gt; '&lt;div class="sidemenu-right"&gt;&lt;h3 class="widgettitle"&gt;',
      'after_widget' =&gt; '&lt;/div&gt;',
      'before_title' =&gt; '',
      'after_title' =&gt; '&lt;/h3&gt;',
   ));

}</pre>
<p>Gördüğünüz gibi oluşturabileceğimiz yan menü sayısının <strong>sınırı yok</strong>. Her menüye bir <strong>isim</strong> belirleyerek onun şablonunu, daha doğrusu parametrelerini belirliyoruz ve işlem tamam.</p>
<h3>Dinamik Menülerin Nereye Yerleşeceğini Belirleme</h3>
<p>register_sidebar fonksiyonu ile ilgili yazamamız gereken kodları bitirdik. Sırada bu yan menülerin nerede gösterileceğini belirlemek var. Bunun için <strong>index.php</strong> dosyamıza gidip ekleme işlemini yapıyoruz ;</p>
<pre class="brush: html">&lt;div class="sidebar-left"&gt;

   &lt;!-- Dinamik sol yan menü --&gt;
   &lt;?php if ( function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar('Sol yan menü') ){ ?&gt; &lt;?php } ?&gt;

&lt;/div&gt;

&lt;div class="content"&gt;

   // Buraya yazılar gelecek...

&lt;/div&gt;

&lt;div class="sidebar-right"&gt;

   &lt;!-- Dinamik sağ yan menü --&gt;
   &lt;?php if ( function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar('Sağ yan menü') ){ ?&gt; &lt;?php } ?&gt;

&lt;/div&gt;</pre>
<p>index.php dosyasında, şablonunu belirlerken isim verdiğimiz yan menüyü, yine aynı ismiyle çağırıyoruz. Ne kadar yan menü oluşturduysak hepsini, istediğiniz sayıda kullanabilirsiniz.</p>
<p>Temanın son halini indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-2.rar">tıklayınız</a>.</p>
<p>Bir sonraki yazıda, <a href="http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-yazilar-1357.html">blog yazılarını</a> göstereceğiz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-dinamik-yan-menuler-1316.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-2.rar" length="3759" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-2.rar" fileSize="3759" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Lorem Ipsum adlı wordpress temamızın üst kısmını buradaki yazıda kodlamıştık. Bu yazıda ise yan menüleri kodlayarak, wordpress tema yapımına devam edeceğiz. Bir temaya dinamik bir yapı kazandıran en önemli unsurlardan biri, admin panelinden yönetilebilir </itunes:subtitle><itunes:summary>Lorem Ipsum adlı wordpress temamızın üst kısmını buradaki yazıda kodlamıştık. Bu yazıda ise yan menüleri kodlayarak, wordpress tema yapımına devam edeceğiz. Bir temaya dinamik bir yapı kazandıran en önemli unsurlardan biri, admin panelinden yönetilebilir olmasıdır. Yan menülere admin panelinden bileşenler ekleyebilmek, kullanıcıyı gerçekten çok rahatladan bir özelliktir. Elbette biz de yan menülerimizi dinamik bir şekilde, [...]</itunes:summary><itunes:keywords>Wordpress, Dinamik bileşen desteği, Dinamik sidebar yapımı, Dinamik yan menü oluşturma, register_sidebar fonksiyonu, Wordpress tema yapımı, Yan menü oluşturma</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Başlangıç</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-baslangic-1265.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-baslangic-1265.html#comments</comments>
		<pubDate>Wed, 15 Feb 2012 09:20:11 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Arama bölümü]]></category>
		<category><![CDATA[Kategori ve sayfaların listelenmesi]]></category>
		<category><![CDATA[Site başlığı ve slogan]]></category>
		<category><![CDATA[Stil dosyasının eklenmesi]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1265</guid>
		<description><![CDATA[WordPress temalarının nasıl yapıldığını anlatırken, örnek bir tema üzerinden gitmek oldukça mantıklı olacaktır diye düşünüyorum. Bu sebeple oturdum basit bir tema tasarladım. Her yazımda temanın belli bölümlerini kodlayacağım. Temanın adını da Lorem Ipsum koydum. Temanın ön izlemesine buradan bakabilirsiniz, isterseniz indirebilirsiniz. Temayı tasarlarken, temada bulunması gereken bazı özelliklere dikkat etmeye çalıştım. Bunları sıralamak istiyorum; Temanın [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>WordPress</strong></span> <span style="color: #ff6600;"><strong>temaları</strong></span>nın nasıl yapıldığını anlatırken, <strong>örnek bir tema</strong> üzerinden gitmek oldukça mantıklı olacaktır diye düşünüyorum. Bu sebeple oturdum basit bir tema tasarladım. Her yazımda temanın belli bölümlerini kodlayacağım. Temanın adını da <strong>Lorem Ipsum</strong> koydum.</p>
<p>Temanın ön izlemesine <a href="http://www.cemdemir.net/wp-tema-yapimi/index.png">buradan</a> bakabilirsiniz, isterseniz indirebilirsiniz.</p>
<p>Temayı tasarlarken, temada bulunması gereken bazı özelliklere dikkat etmeye çalıştım. Bunları sıralamak istiyorum;</p>
<ul>
<li>Temanın en üstünde <span style="color: #ff00ff;"><strong>sitenin başlığını</strong></span> ve <span style="color: #ff00ff;"><strong>sloganını</strong></span> göstereceğiz.</li>
<li>Menüde, admin panelinden oluşturduğunuz <span style="color: #ff00ff;"><strong>sayfaları</strong></span> ya da <span style="color: #ff00ff;"><strong>kategorileri</strong></span> listeleyeceğiz.</li>
<li><span style="color: #ff00ff;"><strong>2 farklı sidebar</strong></span> oluşturacağız, bunun sebebi ise artık sürekli aynı şablonda temaları görmekten sıkılmam. Ayrıca 2 adet sidebar&#8217;ın nasıl oluşturulacağını merak edenler vardır diye düşünüyorum.</li>
<li>Yazılarda <span style="color: #ff00ff;"><strong>öne çıkarılmış görsel</strong></span> kullanacağız.</li>
</ul>
<p>Artık herşeyinizi hazır ettiyseniz, bu yazıda sitenin en üst kısmını kodlayacağız, başlayalım.<span id="more-1265"></span></p>
<h2>Stil Dosyasının Oluşturulması (style.css)</h2>
<p><span style="color: #008000;"><strong>Stil dosyası</strong></span>na, temanızın bilgilerini yazarak başlayabilirsiniz.</p>
<pre>/*

Theme Name: Lorem Ipsum
Theme URI: http://www.cemdemir.net/theme/lorem-ipsum
Description: WordPress teması yapımını öğretmek için tasarlanmıştır, hiçbir iddiası yoktur.
Version: 1.0
Author: Cem Demir
Author URI: http://www.cemdemir.net/
Tags: Buraya istediğiniz etiketleri virgülle ayırarak yazabilirsiniz.

*/</pre>
<p>Aslında buraya <span style="color: #ff6600;"><strong>css</strong></span> kodlarını yazmak istemiyorum, sonuçta <strong>css</strong> bilgisi vermiyorum, <span style="color: #ff6600;"><strong>wp tema yapımı</strong></span>nı göstermeye çalışıyorum. Fakat yukarıdaki gibi gerekli olduğunu gördüğüm yerleri yazmaya çalışacağım. Zaten her yazının sonunda gerekli css dosyasını indirebileceğiniz bir link vereceğim.</p>
<h2>Anasayfanın Kodlanması (index.php)</h2>
<p>Daha önce de bahsettiğim gibi bir temanın çalışması için <strong>index.php</strong> ve <strong>style.css</strong> dosyaları yeterlidir. Bu sebeple temamızı hazırlarken öncelikle index dosyasını bitirmeye çalışacağız. Index&#8217;i bitirdikten sonra, yazdığımız kodları küçük parçalara ayıracağız. Yani <strong>header</strong>, <strong>footer</strong> ve <strong>sidebar</strong> gibi dosyalarda, oluşturduğumuz küçük bölümleri toplayacağız.</p>
<p>Öncelikle sitenin &lt;head&gt; tagları arasında bulunması gereken kodlara bakalım.</p>
<p>Aşağıya yazacağım kodlar sitenin title değeri ile ilgili kodlardır ve genellikle birçok temada aynıdır. <span style="color: #008000;"><strong>SEO</strong></span> açısından da en iyi şekilde ayarlanmıştır.</p>
<pre class="brush: html;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" &lt;?php language_attributes(); ?&gt;&gt;
&lt;meta http-equiv="Content-Type" content="&lt;?php bloginfo('html_type'); ?&gt;; charset=&lt;?php bloginfo('charset'); ?&gt;" /&gt;

&lt;title&gt;&lt;?php

   global $page, $paged;
   wp_title( '|', true, 'right' );
   bloginfo( 'name' );
   $site_description = get_bloginfo( 'description', 'display' );

   if ( $site_description &amp;&amp; ( is_home() || is_front_page() ) )
      echo " | $site_description";

   if ( $paged &gt;= 2 || $page &gt;= 2 )
      echo ' | ' . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );

?&gt;&lt;/title&gt;</pre>
<h3>Stil Dosyasının Sayfaya Eklenmesi</h3>
<p>Title değerini ayarladıktan sonra, oluşturduğumuz css dosyasını anasayfaya eklememiz gerekiyor ;</p>
<pre class="brush: html">&lt;link rel="stylesheet" type="text/css" media="all" href="&lt;?php bloginfo( 'stylesheet_url' ); ?&gt;" /&gt;</pre>
<p>Son olarak &#8220;head&#8221; taglarının arasına şunu da ekleyebilirsiniz ;</p>
<pre class="brush: php">&lt;?php wp_head(); ?&gt;

&lt;/head&gt;</pre>
<p><span style="color: #ff6600;"><strong>wp_head</strong></span>() fonksiyonunu, sitenizin en üstünde sadece size görünecek bir menü çubuğu oluşturur. Fakat, wp_head() fonksiyonunu kullanıyorsanız, <span style="color: #ff6600;"><strong>wp_footer</strong></span>() fonksiyonu ile beraber kullanmalısınız, yani wp_head() fonksiyonunu &#8220;head&#8221; tagları arasına, wp_footer() fonksiyonunu da &#8220;body&#8221; tagının kapanışına yerleştirebilirsiniz.</p>
<h3>Site Başlığı ve Sloganı</h3>
<p>Şimdi de site başlığı ve sloganımızı gösterelim ;</p>
<pre class="brush: html">&lt;body&gt;

&lt;div class="header"&gt;

   &lt;h1&gt;&lt;a href="&lt;?php echo home_url( '/' ); ?&gt;" title="&lt;?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?&gt;" rel="home"&gt;&lt;?php bloginfo( 'name' ); ?&gt;&lt;/a&gt;&lt;/h1&gt;
   &lt;h2&gt;&lt;?php bloginfo( 'description' ); ?&gt;&lt;/h2&gt;

&lt;/div&gt;</pre>
<p>Burada 2 adet önemli fonksiyon bulunmaktadır.</p>
<p><span style="color: #008000;"><strong>bloginfo</strong></span>( &#8216;name&#8217; ) : Sitenizin başlığını getirir.<br />
<span style="color: #008000;"><strong>bloginfo</strong></span>( &#8216;description&#8217; ) : Sitenizin sloganını getirir.</p>
<h3>Sayfaların ya da Kategorilerin Listelenmesi</h3>
<pre class="brush: html">&lt;div class="menu"&gt;

   &lt;ul&gt;
      &lt;li&gt;&lt;a href="&lt;?php bloginfo('home'); ?&gt;"&gt;Anasayfa&lt;/a&gt;&lt;/li&gt;
      &lt;?php wp_list_pages('title_li='); ?&gt;
      &lt;!--Bu fonksiyon sayfaları listelemektedir. --&gt;
      &lt;!--Eğer isterseniz kategorileri de listeleyebilirsiniz &lt;?php wp_list_categories('title_li='); ?&gt;--&gt;
   &lt;/ul&gt;

   &lt;div class="clear"&gt;&lt;/div&gt;

&lt;/div&gt;</pre>
<p>Burayı biraz açıklamak gerekirse, <span style="color: #ff6600;"><strong>wp_list_pages</strong></span>(&#8216;title_li=&#8217;) fonksiyonu sizin admin panelinden oluşturduğunuz <strong>sayfaları</strong> listelemektedir. Fakat bazı arkadaşlar <strong>kategorileri</strong> listelemek de isteyebilirler. Bunun için <span style="color: #ff6600;"><strong>wp_list_categories</strong></span>(&#8216;title_li=&#8217;) fonksiyonunu kullanabilirsiniz.</p>
<h3>Arama Bölümü</h3>
<pre class="brush: html">&lt;div class="search"&gt;

   &lt;form id="searchform" method="get" action="&lt;?php bloginfo('url'); ?&gt;"&gt;

      &lt;fieldset&gt;&lt;input class="search-text" type="text" name="s" id="s" value="Arama" /&gt;&lt;/fieldset&gt;

   &lt;/form&gt;

&lt;/div&gt;</pre>
<p>Arama bölümü için açıklanması gereken fazla birşey yok. Alın kopyalın ve yapıştırın.</p>
<h4>Şimdiye Kadar</h4>
<p>Şu ana kadar yaptıklarımızı bir listelemek gerekirse;</p>
<ul>
<li>Sitenin title değeri için gerekli kodları yazdık,</li>
<li>Stil dosyasını anasayfaya entegre ettik,</li>
<li>Site başlığı ve sloganını en üstte gösterdik,</li>
<li>Sayfaları ya da kategorileri listeleyen fonksiyonlara baktık,</li>
<li>Arama bölümü oluşturduk</li>
</ul>
<p>Şu ana kadar yazılan tüm kodları ve dosyaları indirmek için <a href="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-1.rar">tıklayınız</a>.</p>
<p>Bu yazıyı burada kesiyorum, <a href="http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-dinamik-yan-menuler-1316.html">bir sonraki yazıda</a> görüşmek üzere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-baslangic-1265.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<enclosure url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-1.rar" length="2197" type="application/x-rar-compressed" /><media:content url="http://www.cemdemir.net/wp-tema-yapimi/lorem-ipsum-part-1.rar" fileSize="2197" type="application/x-rar-compressed" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>WordPress temalarının nasıl yapıldığını anlatırken, örnek bir tema üzerinden gitmek oldukça mantıklı olacaktır diye düşünüyorum. Bu sebeple oturdum basit bir tema tasarladım. Her yazımda temanın belli bölümlerini kodlayacağım. Temanın adını da Lorem Ipsum</itunes:subtitle><itunes:summary>WordPress temalarının nasıl yapıldığını anlatırken, örnek bir tema üzerinden gitmek oldukça mantıklı olacaktır diye düşünüyorum. Bu sebeple oturdum basit bir tema tasarladım. Her yazımda temanın belli bölümlerini kodlayacağım. Temanın adını da Lorem Ipsum koydum. Temanın ön izlemesine buradan bakabilirsiniz, isterseniz indirebilirsiniz. Temayı tasarlarken, temada bulunması gereken bazı özelliklere dikkat etmeye çalıştım. Bunları sıralamak istiyorum; Temanın [...]</itunes:summary><itunes:keywords>Wordpress, Arama bölümü, Kategori ve sayfaların listelenmesi, Site başlığı ve slogan, Stil dosyasının eklenmesi, Wordpress tema yapımı</itunes:keywords></item>
		<item>
		<title>WordPress Tema Yapımı : Tema Hiyerarşisi</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tema-hiyerarsisi-1245.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tema-hiyerarsisi-1245.html#comments</comments>
		<pubDate>Tue, 14 Feb 2012 12:26:06 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Bir temada bulunan dosyalar]]></category>
		<category><![CDATA[Tema hiyerarşisi]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1245</guid>
		<description><![CDATA[WordPress tema yapımı ile ilgili bilgi vermeden önce, bir temanın yapısına bakmak gerekir. Bu yazıda tema yapmaya başlamadan önce bilinmesi gereken püf noktaları ve ipuçlarını, bildiğim kadarıyla yazmaya çalışacağım. Bir web sitesinin anasayfasını göstermek için genellikle index dosyası seçilir, index.html, index.php gibi&#8230; Daha doğrusu sunucu, ziyaretçiye göstermek üzere öncelikle index dosyasını arar. Bir Temada Bulunan [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>WordPress tema yapımı</strong></span> ile ilgili bilgi vermeden önce, bir <span style="color: #ff6600;"><strong>tema</strong></span>nın yapısına bakmak gerekir. Bu yazıda tema yapmaya başlamadan önce bilinmesi gereken püf noktaları ve ipuçlarını, bildiğim kadarıyla yazmaya çalışacağım.</p>
<p>Bir web sitesinin anasayfasını göstermek için genellikle <span style="color: #ff6600;"><strong>index</strong></span> dosyası seçilir, index.html, index.php gibi&#8230; Daha doğrusu sunucu, ziyaretçiye göstermek üzere öncelikle index dosyasını arar.<span id="more-1245"></span></p>
<h3>Bir Temada Bulunan Dosyalar</h3>
<p>WordPress temalarının da olmazsa olmaz 2 dosyası vardır, <span style="color: #ff00ff;"><strong>index.php</strong></span> ve <span style="color: #ff00ff;"><strong>style.css</strong></span></p>
<p>Bu 2 dosya bir temayı çalıştırmanız için <strong>yeterlidir</strong>, diğer ıvız zıvırlara <strong>teorik</strong> olarak gerek yoktur. Takdir edersiniz ki bu 2 dosya olmadan da temayı <strong>çalıştıramazsınız</strong>. Ayrıca bazı temalarda index.php yerine <span style="color: #ff00ff;"><strong>home.php</strong></span> de bulunabilir.</p>
<p>Benim ıvır zıvır olarak bahsettiğim dosyalar farklı senaryolarda hangi sayfa şablonunun gösterileceği ile ilgilidir.</p>
<p>Bir <span style="color: #008000;"><strong>kategoriye</strong></span> tıkladığınızda, o kategorideki yazıları göstermesi amacıyla <span style="color: #ff00ff;"><strong>category.php</strong></span> dosyası çalıştırılır.</p>
<p>Bir <span style="color: #008000;"><strong>yazıya</strong></span> tıklandığında o yazının tamamının gösterilmesi ve diğer bilgilerinin gösterilmesi amacıyla <span style="color: #ff00ff;"><strong>single.php</strong></span> çalıştırılır.</p>
<p>Bir <span style="color: #008000;"><strong>arşiv sayfasına</strong></span> baktığınızda <strong><span style="color: #ff00ff;">archive.php</span></strong> çalıştırılır.</p>
<p>Bunları şu şekilde toplayabiliriz, bir wordpress sitesinde farklı modüller vardır ve bunların herbirine farklı şablonlar tanımlayabilirsiniz.</p>
<p>Bu modülleri aklıma geldiği kadarıyla yazmaya çalışayım ;</p>
<ul>
<li>kategoriler &#8211; category.php</li>
<li>sayfalar &#8211; page.php</li>
<li>arşiv &#8211; archive.php</li>
<li>arama &#8211; search.php</li>
<li>bulunamadı &#8211; 404.php</li>
<li>tekil yazı &#8211; single.php</li>
</ul>
<p>Herbiri <strong>farklı senaryolar</strong> için tasarlanmış bu modüller ile, sitenizi isteğinize göre şekillendirebilirsiniz.</p>
<p>Bir arama yapıldığında sonuçları nasıl göstereceksiniz, bir <strong>etikete basıldığında</strong> ziyaretçiyi ne karşılayacak, bozulmuş bir <strong>bağlantıya basıldığında</strong> ne olacak gibi soruların cevaplarını bu dosyaların içine yerleştirmekteyiz.</p>
<p>Diyelim ki temanızda archive.php dosyası <strong>yok</strong>, fakat ziyaretçi ocak ayında yazılmış yazıları görmek için bir linke tıkladı. Bu durumda ziyaretçiye gösterilecek bir archive.php dosyası olmadığından dolayı, <strong>sonuçlar index.php şablonu ile gösterilir</strong>. Her dosya için bu durum geçerlidir. Eğer ilgili dosya yoksa, onun yerine index.php şablonu gösterilir.</p>
<p>Mesela temanızda <strong>404.php</strong> dosyası yok, ve ziyaretçinizin aradığı içerik sitenizden <strong>silinmiş</strong>. Bu durumda ziyaretçiye index.php dosyası gösterilir ve bir nevi <strong>anasayfaya atma işlemi</strong> gerçekleştirilir.</p>
<p><span style="color: #ff6600;"><strong>Tema hiyerarşisine</strong></span> daha detaylı bakmak isterseniz <a href="http://codex.wordpress.org/images/1/18/Template_Hierarchy.png">buraya</a> bir göz atabilirsiniz.</p>
<p>Temanıza özel olacak fonksiyonlar tanımlamak isteyebilirsiniz, bunun için <span style="color: #ff00ff;"><strong>functios.php</strong></span> dosyası kullanılır.</p>
<p>Bir temada bu dosyaların dışında ayrıca <span style="color: #ff00ff;"><strong>header.php</strong></span>, <strong><span style="color: #ff00ff;">footer.php</span></strong>, <span style="color: #ff00ff;"><strong>sidebar.php</strong></span> gibi dosyalar bulunmaktadır. Bu dosyalar adında da anlaşıldığı gibi üst, alt ve yan taraf için düşünülmüştür.</p>
<p>Daha detaylı açıklamak gerekirse ; bir sitenin neresinde olursanız olun, ister arama sonuçlarına bakın, isterseniz arşive bakın, genellikle (her zaman olmayabilir) en üst ve en alt taraf aynıdır. Siz her bir şablon için, en üst ve en alta ayrı ayrı aynı kodu yazmak yerine, o kodları header ve footer dosyalarında toplayıp, bu dosyaları her şablonun en üstüne ve en altına entegre edebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-tema-yapimi-tema-hiyerarsisi-1245.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Teması Yapmak için Ne Bilmeliyim ?</title>
		<link>http://www.cemdemir.net/wordpress/wordpress-temasi-yapmak-icin-ne-bilmeliyim-1222.html</link>
		<comments>http://www.cemdemir.net/wordpress/wordpress-temasi-yapmak-icin-ne-bilmeliyim-1222.html#comments</comments>
		<pubDate>Mon, 13 Feb 2012 13:08:39 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Fireworks]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress Tema]]></category>
		<category><![CDATA[Wordpress tema yapımı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1222</guid>
		<description><![CDATA[WordPress bir içerik yönetim sistemidir. Dolayısıyla tema odaklı çalışır, aynı telefonunuzun temasını değiştirir gibi wordpress sitenizin de temasını değiştirebilirsiniz. Bunu bir ön bilgi olarak yazdıktan sonra asıl meseleye gelebiliriz. Ben bir wordpress geliştiricisiyim. WordPress için temalar üretmekteyim. Bu dökümanı oluşturmamın sebebi de, daha sonradan bakmak üzere kendime yazılı bir kaynak oluşturmak ve unuttuğum zaman açıp hemen [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>WordPress</strong></span> bir <strong><a href="http://www.cemdemir.net/wordpress/icerik-yonetim-sistemi-olarak-wordpress-125.html">içerik yönetim sistemi</a></strong>dir. Dolayısıyla tema odaklı çalışır, aynı telefonunuzun temasını değiştirir gibi wordpress sitenizin de <strong><span style="color: #008000;">tema</span></strong>sını değiştirebilirsiniz. Bunu bir ön bilgi olarak yazdıktan sonra asıl meseleye gelebiliriz.</p>
<p>Ben bir <strong><span style="color: #008000;">wordpress geliştiri</span></strong>cisiyim. WordPress için temalar üretmekteyim. Bu dökümanı oluşturmamın sebebi de, daha sonradan bakmak üzere kendime yazılı bir kaynak oluşturmak ve unuttuğum zaman açıp hemen hatırlayabilmektir.</p>
<p>Kendime kaynak oluştururken, başkalarına yararlı olma düşüncesi ise çok daha güzel olacaktır diye, bu yazı dizisini başkasına anlatıyor gibi yazacağım.<span id="more-1222"></span></p>
<p>Öncelikle bana şu soruyu sorduğunuzu varsayıyorum : &#8220;<strong>Neden wordpress teması yapayım ki ?</strong>&#8221;</p>
<p>Çünkü <span style="color: #008000;"><strong>wordpress</strong></span>&#8216;in size sunmuş olduğu olanakları kullanarak <strong>her türde site</strong> yapabilirsiniz. Yeri gelince bir <span style="color: #ff6600;"><strong>blog</strong></span> yapmanız gerekir, yeri gelince bir <span style="color: #ff6600;"><strong>internet portalı</strong></span> ya da bir <span style="color: #ff6600;"><strong>kurumsal site</strong></span>. Hatta ve hatta wordpress kullanarak bir <span style="color: #ff6600;"><strong>forum sitesi</strong></span> bile yapabilirsiniz.</p>
<p>Çünkü dünya üzerinde varolan sitelerin birçoğu wordpress sistemini kullanıyor. Bu size büyük bir iş kapısı açabilir ve hayatınızı değiştirebilir. Eğer ciddi anlamda bu işi yapacaksanız, <strong>hayatınız gerçekten değişebilir</strong>.</p>
<p>Çünkü <strong>internet teknolojileri</strong> dalında en çok aranan özelliklerden birisi wordpress&#8217;i bilmek ve geliştirebilir olmaktır.</p>
<p>İlk düşündüğümde aklıma gelenler bunlardı ve aslında bunlar bu yazının devamını okumak için yeterli sebeplerdir, değil mi ?</p>
<h2>Yapım Aşamaları</h2>
<p>Bir siteyi yaparken izlenmesi gereken bazı <strong>aşamalar</strong> vardır. Dikkat ettiyseniz <span style="color: #008000;"><strong>wordpress teması</strong></span> yaparken demiyorum, bu aşamalar <strong>her türlü site</strong> için uygulanabilir. Bu aşamaların her birini siz yapmak zorunda değilsiniz. Fakat ben herbirine, siz yapıyormuşsunuz gibi değinmek istiyorum.</p>
<h3>Sitenin Tasarlanması</h3>
<p>Öncelikle müşterinin (bu siz de olabilirsiniz) <strong>ne istediği</strong> iyi kavranmalıdır. İsteklere göre bir çizim programı ile sitenin <strong>ön izlemesi</strong> oluşturulmalıdır.</p>
<p>Bu aşamada en çok kullanılan program <span style="color: #008000;"><strong>Photoshop</strong></span>&#8216;tur. Fakat öğrenmesi biraz zahmetlidir. Benim size tavsiyem <span style="color: #008000;"><strong>Fireworks</strong></span> yönünde olacaktır.</p>
<p>Yukarıda bahsettiğim gibi, bu aşamayı, yani sitenin tasarımını siz yapmak zorunda değilsiniz. Tasarım size hazır olarak da gelebilir. WordPress teması yapmak için illa ki bir çizim programını kullanabilir olmak ve tasarım yapmak zorunda değilsiniz.</p>
<p>Herneyse, sitenin nasıl görüneceğini bir program ile belirledikten ve müşteriyi de memnun ettikten sonra <strong>kod</strong> yazmaya başlayabilirsiniz.</p>
<h3>HTML</h3>
<p>Elinizde bir imaj var ve bunu site haline getirmeniz gerekiyor.</p>
<p>Tüm sitelerde olduğu gibi <strong>WordPress tabanlı siteler</strong> de, <span style="color: #ff6600;"><strong>HTML</strong></span> dediğimiz işaretleme dilinden oluşmaktadır. Temelde her zaman HTML vardır. HTML, herhangi bir site yapmak için bilmeniz gereken en önemli dildir. Hatta bir site yapmak için tek başına yeten tek dildir.</p>
<p>Öğrenmesi oldukça basit ve zevklidir. HTML öğrendikçe neler yapabileceğinizi kendiniz keşfedebilirsiniz.</p>
<p><strong>Evet, HTML bilmek wordpress teması yapmak için bir zorunluluktur.</strong></p>
<h3>CSS</h3>
<p><span style="color: #ff6600;"><strong>CSS</strong></span>, HTML ile beraber kullanılan bir dildir. HTML ile oluşturduğunuz elementlere şekil vermek için kullanırsınız. Yegane amacı budur.</p>
<p>Şekil vermekten kastım, <strong>renkleri</strong>, <strong>yerleşimi</strong>, <strong>fontları</strong> ve birçok şeyi isteğinize göre değiştirmenizdir.</p>
<p>CSS tek başına hiçbir anlam ifade etmez. HTML ile beraber kullanmanız gerekir.</p>
<p>Söylemeden geçemeyeceğim, HTML&#8217;i olduğu gibi CSS&#8217;i de öğrenmek çok zevklidir.</p>
<p><strong>Evet, CSS bilmek wordpress teması yapmak için bir zorunluluktur.</strong></p>
<h3>PHP</h3>
<p>HTML ve CSS kullanarak güzel bir site oluşturabilirsiniz. Fakat oluşturacağınız sitenin tamamen <strong>statik</strong> olacağını söylemeliyim. Yani yönetilebilir bir site olmayacaktır. Daha farklı bir deyişle, şu ana kadar yaptıklarımız hep sitenin görünümü ile ilgiliydi. Fakat birçok sitenin bir <span style="color: #008000;"><strong>altyapısı</strong></span>, yani <span style="color: #ff6600;"><strong>yazılımı</strong></span> vardır.</p>
<p>Bu yazılımı bazen siz kendi programlama becerilerinizi kullanarak oluşturursunuz, bazen ise bu yazılımı hazır olarak sunan <strong>wordpress sistemini</strong> kullanırsınız.</p>
<p>WordPress&#8217;in yazılımı için <span style="color: #ff6600;"><strong>PHP</strong></span> dili kullanılmıştır. O kadar güzel ve kullanışlı bir şekilde yazılmıştır ki, PHP&#8217;yi iyi derecede bilmeyenler bile anlayabilir ve tema geliştirebilirler.</p>
<p>Teorik olarak PHP bilmek wordpress teması yapabilmek için gereklidir fakat bu bilginin çok üst düzey olması gerekmez. <strong>PHP bilginizle orantılı şekilde daha fonksiyonel ve kullanışlı temalar çıkarabilirsiniz.</strong></p>
<h3>Javascript / JQuery</h3>
<p><span style="color: #ff6600;"><strong>Javascript</strong></span>, web sayfalarında kullanıcıyla etkileşimi sağlayan dildir. <span style="color: #008000;"><strong>JQuery</strong></span> ise onun bir kütüphanesidir. JQuery, daha çok görsel açıdan daha zengin siteler yapmak için kullanılır. Animasyon ve sayfada kayan, hareket eden elementler oluşturmak için geliştirilen bir dildir.</p>
<p>Söylemeliyim ki Javascript ya da JQuery bilmek, wordpess teması yapmak için biz zorunluluk değildir. Bilmeniz elbette size avantaj sağlayacaktır.</p>
<h3>Sonuç</h3>
<p>Bir wordpress teması yaparken kullanılan dilleri ve araçları açıklamaya çalıştım. Ufaktan tekrar söylemek gerekirse;</p>
<p><strong>HTML</strong> en gerekli dildir. Sitenin ana elementlerini oluşturur,</p>
<p><strong>CSS</strong>, HTML ile beraber kullanılacak olan stilleme dilidir,</p>
<p><strong>PHP</strong> ise siteye dinamizm vermesi için kullanılır.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/wordpress/wordpress-temasi-yapmak-icin-ne-bilmeliyim-1222.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>SQL 6 : Karmaşık (İç içe) SELECT Sorguları</title>
		<link>http://www.cemdemir.net/veri-tabani/sql-6-karmasik-ic-ice-select-sorgulari-1177.html</link>
		<comments>http://www.cemdemir.net/veri-tabani/sql-6-karmasik-ic-ice-select-sorgulari-1177.html#comments</comments>
		<pubDate>Sat, 07 Jan 2012 00:46:56 +0000</pubDate>
		<dc:creator>Cem Demir</dc:creator>
				<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Alt Sorgu]]></category>
		<category><![CDATA[İç içe SELECT]]></category>
		<category><![CDATA[İç içe SELECT örnekleri]]></category>
		<category><![CDATA[İç içe Sorgu]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Veri tabanı]]></category>

		<guid isPermaLink="false">http://www.cemdemir.net/?p=1177</guid>
		<description><![CDATA[İç içe Select sorguları, bir başka deyişle Alt Sorgu kavramı SQL&#8216;de en zorlanılan kısımdır. Bu yazımda Alt sorgularla ilgili birkaç önemli noktaya değinerek, elimden geldiğince bol örnek yazmaya çalışacağım. Neden İç içe Sorgu Kullanırız ? Bir sorgudan elde ettiğiniz sonucu, diğer bir sorgu için kullanmanız gerektiğinde, iç içe sorgu kullanmanız gerekir. Alt sorgu kavramı, genellikle [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;"><strong>İç içe Select sorguları</strong></span>, bir başka deyişle <span style="color: #008000;"><strong>Alt Sorgu</strong></span> kavramı <strong><span style="color: #ff6600;">SQL</span></strong>&#8216;de en zorlanılan kısımdır. Bu yazımda Alt sorgularla ilgili birkaç önemli noktaya değinerek, elimden geldiğince bol örnek yazmaya çalışacağım.</p>
<h3>Neden İç içe Sorgu Kullanırız ?</h3>
<p>Bir sorgudan elde ettiğiniz sonucu, diğer bir sorgu için kullanmanız gerektiğinde, iç içe sorgu kullanmanız gerekir.</p>
<p><span style="color: #008000;"><strong>Alt sorgu</strong></span> kavramı, genellikle birden fazla tablo söz konusu ise ortaya çıkar. Bu yüzden, örnek verebilmek amacıyla 5 adet tablo oluşturup, ilişlilerini kuralım.<span id="more-1177"></span></p>
<h3>Tabloların Oluşturulması ve İlişkiler</h3>
<p><a href="http://www.cemdemir.net/wp-content/uploads/2012/01/tablolar-ve-iliskiler.jpg"><img class="alignnone size-full wp-image-1207" title="tablolar-ve-iliskiler" src="http://www.cemdemir.net/wp-content/uploads/2012/01/tablolar-ve-iliskiler.jpg" alt="" width="547" height="255" /></a></p>
<p>Yukarıdaki tablolar bir film veri tabanı oluşturmak için tasarlanmıştır. Biraz açıklamak gerekirse ;</p>
<p>Benim <strong>veri tabanı</strong>mın temelinde <strong>Filmler</strong> var. Filmlerin haricinde, Film <strong>Türleri</strong> ve Filmlerde oynayan <strong>Oyuncular</strong> var.</p>
<p>Filmler ile Oyuncular arasında <strong>sonsuza sonsuz ilişki</strong> kurup, <strong>gereksiz veri tekrarı</strong> yapmayı önlemek amacıyla araya bir <strong>geçiş tablosu</strong> yaptım. Bu şekilde veri tekrarını <strong>minimize</strong> ettim. Aynı şeyi Filmler ile Türler arasında da yaptım.</p>
<p>İlişkileri bu şekilde kurduktan sonra, alt sorgu kavramına dönüp, devam edelim.</p>
<p>Bu veri tabanını temel alarak, dramatik filmlere ulaşmak, Tom Hanks&#8217;in filmlerine ulaşmak ya da adı &#8220;The&#8221; ile başlayan bilim kurgu filmlerine ulaşmak gibi birden fazla tabloyu ilgilendiren sorguları, alt sorgu kavramı ile yapabilirsiniz. Ya da JOIN komutlarını kullanmalısınız.</p>
<p>Örnek bir alt sorgu yapalım ve bize Tom Hanks&#8217;in oynadığı filmleri getirsin ;</p>
<pre>SELECT Ad
FROM Filmler
WHERE Film_ID IN (

   SELECT Film_ID
   FROM Oyuncu_Film
   WHERE Oyuncu_ID = (

      SELECT Oyuncu_ID
      FROM Oyuncular
      WHERE Ad = "Tom" AND Soyad = "Hanks"

) )</pre>
<p>Bu kod şu an biraz karışık görünebilir ama alt sorgu<strong> sözdizimi</strong>ni(syntax) görmeniz açısından ekledim.</p>
<p>Bu kodda her bir alt <span style="color: #ff6600;"><strong>SELECT</strong></span>, bir üsttekine değer göndermektedir. Üstteki sorgu o değeri alıp kullanır. Zaten iç içe select sorgularının mantığı da bu değil midir ?</p>
<p>Aşağıda iç içe sorgular ile bilinmesi gereken noktalar var ;</p>
<ul>
<li>Alt sorgu, bir üstteki sorguda yer alan <span style="color: #ff6600;"><strong>WHERE</strong></span>, <span style="color: #ff6600;"><strong>HAVING</strong></span> veya <span style="color: #ff6600;"><strong>FROM</strong></span> kelimeleri içine yazılırlar. Yukarıda WHERE içinde bir alt sorgu ve onun altındaki WHERE içine de bir başka alt sorgu yazılmıştı.</li>
<li>Alt sorgular parantez işaretleri içerisinde yazılmalıdır.</li>
<li>Alt sorgularda <strong>ORDER BY</strong> komutu kullanılamaz, ancak ana sorguda kullanabilirsiniz.</li>
</ul>
<p>WHERE ve HAVING ile alt sorguya geçerken, alt sorgunun üstteki sorguya göndereceği değer tek de olabilir birden fazla da olabilir. Tek değer gönderenlere tek satır sorguları, birden fazla değer gönderenlere çoklu satır sorguları denir. Ve bu ayrıma göre WHERE ya da HAVING için kullanılan kriter belirteci farklılık gösterir.</p>
<p><span style="color: #008000;"><strong>Tek Satır Döndüren Alt Sorgular</strong></span> : Kriter belirteçleri =, &lt;, &gt; , &lt;=, &gt;= veya &lt;&gt; olabilir.</p>
<p><span style="color: #008000;"><strong>Çok Satır Döndüren Alt Sorgular</strong></span> : Kriter belirteçleri IN, ANY veya ALL olabilir.</p>
<p>Bu açıklamalardan sonra lafı fazla uzatmayıp, birkaç örnek yapalım.</p>
<p>Türü dram olan filmlerin Adlarını ve IMDB Puanlarını listeleyelim ;</p>
<pre>SELECT Ad, IMDB_Puan
FROM Filmler
WHERE Film_ID IN (

   SELECT Film_ID
   FROM Film_Tur
   WHERE Tur_ID IN (

      SELECT Tur_ID
      FROM Turler
      WHERE Ad = "Dram"

) )</pre>
<p><span style="color: #008000;"><strong>Açıklama</strong></span> : En alttaki sorguya bakılırsa, türü dram olan filmlerin Tur_ID&#8217;leri bir üstteki sorguya gönderilmiştir. Ortadaki sorgu ifadesi ise Tur_ID&#8217;si dram olan filmlerin Film_ID&#8217;lerini ana sorguya göndermiştir. Bütün kriterler bu iki alt sorgu ile sağlandıktan sonra en üstteki SELECT ifadesi ile Ad ve IMDB_Puan değerleri seçilerek listelenmiştir.</p>
<p>Natalia Portman&#8217;ın oynadığı film sayısını bulalım ;</p>
<pre>SELECT COUNT(Film_ID) AS Film_Sayisi
FROM Filmler
WHERE Film_ID IN (

   SELECT Film_ID
   FROM Oyuncu_Film
   WHERE Oyuncu_ID IN (

      SELECT Oyuncu_ID
      FROM Oyuncular
      WHERE Ad = "Natalia" AND Soyad = "Portman"

) )</pre>
<p><span style="color: #008000;"><strong>Açıklama</strong></span> : En alttaki sorguda adı Natalia soyadı Portman olan oyuncunun Oyuncu_ID&#8217;si bir üstteki sorguya gönderilmiştir. Ortadaki sorgu ise, alt sorgudan gelen Oyuncu_ID değerini barındıran filmlerin Film_ID&#8217;lerini bir üstteki sorguya göndermiştir. (Dikkat ederseniz Oyuncu_Film tablosunda 2 sütun var : Oyuncu_ID, Film_ID) Ana sorguda ise alt sorgulardaki kriterlerden geçen kayıtların sayısı, yani Natalia Portman&#8217;ın oynadığı filmlerin sayısı bulunmuştur.</p>
<p>IMDB Puanı, tüm filmlerin IMDB Puanlarının ortalamasından büyük olan dram filmlerin adlarını, IMDB puanlarını ve tarihlerini listeleyelim ;</p>
<pre>SELECT Ad, Tarih, IMDB_Puan
FROM Filmler
WHERE IMDB_Puan &gt; (

   SELECT AVG(IMDB_Puan)
   FROM Filmler )

AND Film_ID IN (

   SELECT Film_ID
   FROM Film_Tur
   WHERE Tur_ID IN (

      SELECT Tur_ID
      FROM Turler
      WHERE Ad = "Dram"

) )</pre>
<p><span style="color: #008000;"><strong>Açıklama</strong></span> : Bu sorguda 2 farlı kriter mevcuttur : IMDB puanı, ortalamanın üstünde olan filmler ve dram filmleri.</p>
<p>Dramatik filmleri bulmak amacıyla en alttaki sorgudan, türü dram olan filmlerin Tur_ID&#8217;leri bir üsttekine gönderilmiştir. Bir üstteki sorguda ise, dramatik filmlerin Film_ID&#8217;lerini ana sorguya göndermiştir.</p>
<p>Ortalama puanların üzerindeki filmler bulmak amacıyla AVG fonksiyonu kullanarak ana sorguya bir kriter daha belirlemiş olduk. 2 kriterde sağlandığına göre artık Ad, Tarih ve IMDB_Puan değerlerini SELECT edebiliriz.</p>
<p>Tom Hanks&#8217;in oynadığı dramatik filmlere bakalım ;</p>
<pre>SELECT Ad
FROM Filmler
WHERE Film_ID IN (

   SELECT Film_ID
   FROM Oyuncu_Film
   WHERE Oyuncu_ID = (

      SELECT Oyuncu_ID
      FROM Oyuncular
      WHERE Ad LIKE "Tom*" ) )

AND Film_ID IN (

   SELECT Film_ID
   FROM Film_Tur
   WHERE Tur_ID = (

      SELECT Tur_ID
      FROM Turler
      WHERE Ad LIKE "Dra*" ))</pre>
<p><span style="color: #008000;"><strong>Açıklama</strong></span> : Bu sorgu için 5 tabloyu da kullanmamız gerekiyor. Yine 2 farklı kritere uyan filmleri listeleyeceğiz.</p>
<p>Önce Tom Hanks&#8217;in oynadığı filmlerin Film_ID&#8217;leri, daha sonra türü dram olan filmlerin Film_ID&#8217;leri ana sorguya gönderilmiştir. Bu 2 kriteri sağladıktan sonra SELECT ile listeleme yapabiliriz.</p>
<h3>Sonuç &#8211; Özet</h3>
<p>İç içe sorgular ile, alt sorgudan dönen sonucu ana sorguda kullanabilirsiniz. Bir tablodaki değerleri, diğer bir tabloya iletmek için güzel bir yoldur. Dikkat edilmesi gereken nokta, 2 tablo arasında ilişki kurulması gerektiğidir.</p>
<p>Bir sorgudan diğerine geçerken, WHERE, HAVING ve FROM sözcükleri kullanılır.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cemdemir.net/veri-tabani/sql-6-karmasik-ic-ice-select-sorgulari-1177.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	<media:rating>nonadult</media:rating></channel>
</rss>

