Geçenlerde bir ziyaretçim bana iletişim formu aracılığıyla arşiv sayfasını nasıl yaptığımı sordu. Ben de ona bu sorunun cevabını blogumda bütün ziyaretçilerle paylaşmamın daha iyi olacağını düşündüğümü söyledim. Şimdi bu yazımda blogumdaki arşiv sayfasının nasıl yapılabileceğini anlatacağım.

Öncelikle şunu söylemem gerekir ki burada bahsettiğim yöntem Dejan Cancarevic‘in kendi blogunda arşiv sayfasının yapımında izlediği yöntemi esas alıyor. Bu yöntem ile herhangi bir eklenti kullanmadan, Wordpress’in bizlere sunduğu imkanlar içinde arşiv sayfamızı oluşturabiliyoruz. Harika değil mi?

Arşiv Yapısı

Daha önce muhakkak arşiv sayfama uğrayıp nasıl birşey olduğunu görmüşsünüzdür ama yine de arşiv sayfamızın nasıl göründüğünü aşağıda göstermek istiyorum:

Evet, yukarıda görebildiğiniz üzere üst kısımda bir arama kutusu bulunmakta. Bunun burada olmasının nedeni ziyaretçilerimizin arşivi taramak yerine hemen aklında olan bir terimi aramak isteyebilir (tembel ziyaretçileri de düşünmemiz lazım değil mi? xD). Alt kısımda da arşivimizdeki yazıların yazı/tarih biçiminde listelendiğini göreceksiniz. Gördüğünüz üzere arşivimizin yapısı gayet sade bir şekilde olacak.

Gösteri Zamanı

Şimdi yukarıdaki yapıyı oluşturmak için anahtar niteliğinde üç kod parçamız bulunmakta.

Wordpress’e Özel Şablon Tanımlamak İçin:

Wordpress’de özel şablonlar oluşturup istedimiz sayfada kullanabileceğimizi biliyor muydunuz? Burada anlattığım arşiv sayfasını da özel şablon sayesinde oluşturacağız. Özel şablonu Wordpress’e tanıtmak çok kolay. Sadece aşağıdaki gibi bir kod parçasını kullanmanız yeterli oluyor.

1
2
3
4
5
<?php
/*
Template Name: Arşiv Sayfası
*/
?>

Arama Kutusunu Oluşturmak İçin:

Arama kutusunu oluşturmak için de aşağıdaki kod parçasını kullanıyoruz. Buradaki yapıyı siz kendi blogunza özel olarak ayarlayabilirsiniz.

1
2
3
4
5
6
7
8
9
<!--SEARCH-->
<form action="<?php bloginfo('url'); ?>/" method="get">
	<div>
		<label for="search_term">Arama Yapın:</label>
		<input type="text" id="search_term" name="s" />
	</div>
	<div><button type="submit">Ara</button></div>
</form>
<!--/SEARCH-->

Arşiv Listesini Oluşturmak İçin:

Ve geldik en önemli kod parçamıza. Buradaki kod parçamız sayesinde bütün yazıları tarihe göre sıralayıp gösterebiliyoruz.

1
2
3
4
5
6
7
8
9
<!--ARCHIVE LIST-->
<h2>Yazılar</h2>
<ul>
	<?php $myposts = get_posts('numberposts=-1&offset=0');
	foreach($myposts as $post) : ?>
		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?><span><?php the_time('d F Y H:i') ?></span></a></li>
	<?php endforeach; ?>
</ul>
<!--/ARCHIVE LIST-->

Bakın size burada bir ipucu vereyim. Eğer arşiv listenizde bir kategoriye ait yazıların gösterilmemesini istiyorsanız (mesela ben çalışmalarım kategorisi altındaki yazıları göstermiyorum çünkü o kategori altında çalışmalarım sayfasındaki öğeler mevcut ve arşivde bunlar görüntülenmemesi gerekiyor) aşağıdaki 4. satırda yer alan get_posts() adlı fonksiyondaki argümana &cat=-8‘ı ekleyebilirsiniz.

Buradaki 8 değerini sizin engellemek istediğiniz kategori ID numarası ile değiştirmeniz gerekiyor. ID’yi bulmak için Wordpress panelinizden Yönet>Kategoriler bölümüne girip burada hangi kategorinin ID numarasını öğrenmek istiyorsanız onun üzerine gelince tarayıcınızın altındaki durum çubuğunda bu numarayı görebiliyorsunuz (buradaki ekran görüntüsüne bakabilirsiniz). Bu arada birden çok kategoriyi engellemek için bu argümana birden fazla ID numarası girebiliyorsunuz. Yani &cat=-8,-10,-15 gibi kullanabilirsiniz.

Şimdi siz de bu kod parçalarını kullanarak arşiv sayfanızı oluşturup arsiv_sayfasi.php adıyla temanızın bulunduğu dizine kaydedin (mesela ben wp-content/themes/emerald/ klasörü altında bu dosyayı kaydettim).

Sonuç olarak ben kendi blogumun tema yapısını da dikkate alarak arsiv_sayfasi.php adlı dosyamı aşağıdaki kodları içerecek şekilde ile sunucuma kaydettim. Ama bütün işlemler bununla da bitmiyor. Okumaya devam edin. :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
/*
Template Name: Arşiv Sayfası
*/
?>
 
<?php get_header(); ?>
 
<!--CENTER-->
<div id="center">
 
	<!--CONTENT-->
	<div id="content">
 
		<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
 
		<!--ENTRY-->
		<div class="entry page">
			<div class="entry_content">
				<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
				<p>Aşağıdaki arama formunu kullanarak veya arşivden eski yazılarıma ulaşabilirsiniz.</p>
 
				<!--SEARCH-->
				<form action="<?php bloginfo('url'); ?>/" method="get">
					<div>
						<label for="search_term">Arama Yapın:</label>
						<input type="text" id="search_term" name="s" />
					</div>
					<div><button type="submit">Ara</button></div>
				</form>
				<!--/SEARCH-->
 
				<!--ARCHIVE LIST-->
				<h2>Yazılar</h2>
				<ul>
					<?php $myposts = get_posts('numberposts=-1&offset=0');
					foreach($myposts as $post) : ?>
						<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?><span><?php the_time('d F Y H:i') ?></span></a></li>
					<?php endforeach; ?>
				</ul>
				<!--/ARCHIVE LIST-->
			</div>
 
		</div>
		<!--/ENTRY-->
 
		<?php endwhile; ?>
		<?php endif; ?>
 
	</div>        
	<!--/CONTENT-->
 
<?php get_sidebar(); ?>
 
<?php get_footer(); ?>

Son olarak da Wordpress yönetim panelinizden Yaz>Sayfa bölümüne girip sayfanın başlığına “Arşiv” yazın ardından da aşağıdaki görüntüdeki gibi sayfa şablonu olarak Arşiv Sayfasını seçin. Ve tabii ki bu sayfayı yayımlıyoruz.

İşte bu kadar! Eğer herşeyi doğru yapmışsanız blogunuzun adresinin sonuna /arsiv/ yazarak arşiv sayfanıza erişebilirsiniz (Örneğin: fatihturan.com/arsiv/).

Eğer herhangi bir sorunla karşılaşırsanız bunu çekinmeden burada yorum yazarak belirtebilirsiniz.

Yorumlar

Bu yazı hakkında 11 yorum yazıldı. Yorumları RSS üzerinden de takip edebilirsiniz. Siz de yorum yazmak ister misiniz?

  1. Açıkçası sitem kapanmasaydı eklenti kullanarak arşiv sayfası oluşturmayı yazacaktım. Çok güzel anlatmışsın eline sağlık.

    ercani → http://www.ercani.com 28 Eylül 2008 19:51

  2. Güzel bir anlatım olmuş teşekkürler. Bu tip şeyler eklentiler ile de yapılabilir. Ancak hız açısından yüksek performans istiyorsak, bu şekilde yapmak en iyisi…

    müJdaT → http://www.mujdatkorkmaz.com 28 Eylül 2008 20:05

  3. Bilgilendirme için teşekkürler. Yeni (ilk) geliştirdiğim tema için Arşiv sayfasını nasıl yapabilirim diye düşünüyordum. Wordpress’in sunduğu Tag’lar ile birşeyler çıkartabilirmiyim diyordum, bu yazı çok iyi oldu.
    Blogta kayıtlı 400 tane yazı var ve hepsini aynı yere listeliyor. Kategori engellemek gibi, yazılara da bir limit koyma şansımız var mı? Bunun için nasıl bir yol izlemek gerekiyor?

    Yucel Eroglu → http://www.emlakakademi.com 28 Eylül 2008 20:11

  4. fatih hocam bende türkçe karakter problemi çıktı. Yazılarda sorun yok da en baştaki

    ”A�a��daki arama formunu kullanarak veya ar�ivden eski yaz�lar�ma ula�abilirsiniz.” cümlesinde.

    2. olarak yazıları ay-ay sıralamak için ne yapabiliriz?

    Hakan Nural → http://www.sehriderya.net/ 28 Eylül 2008 21:27

  5. @Müjdat: Hız açısından bilemiyorum ama ben tema geliştirirken olabildiğince eklentilerden bağımsız çalışmaktan yanayım.

    @Yücel Eroğlu: get_posts() fonksiyonunda yer alan numberposts=-1 argümanındaki -1 değerini kaç tane göstermek istiyorsanız ona göre değişin (Örneğin: numberposts=15). Daha sonrasında da arşiv içinde dolaşmak için ileri/geri düğmelerine ihtiyacınız olacak. Bunları da next_posts_link(); ve previous_posts_link(); fonksiyonları ile yapabilirsiniz. Ayrıca bu fonksiyonla ilgili ayrıntılı bilgiyi buradan bulabilirsiniz.

    @Hakan Nural: Kullandığın editörün encoding ayarlarını kontrol etmeni öneririm. Ben genelde bütün dosyalar için UTF-8 kullanıyorum ve herhangi bir sorunla karşılaşmıyorum.

    Bunun yanısıra diğer soruna gelirsek; arşivi aylık olarak listeleme imkanı olabilir ama şu anda nasıl yapılacağına dair bir bilgim yok. Bir ara bu konuyu araştırıp tekrar buraya not düşebilirim.

    fatihturan → http://www.fatihturan.com 28 Eylül 2008 23:17

  6. @fatihturan, bende de Hakan Nural’da olduğu gibi Türkçe karakter sorunu meydana geldi. Bahsettiğiniz o encoding ayarlarını nerden kontrol edebiliriz?

    iamdezzy → http://www.amatoruz.org 01 Ekim 2008 13:09

  7. @iamdezzy: Mesela Notepad2 kullanarak şablonunuzun encoding ayarlarını görebilir ve düzenleyebilirsiniz.

    fatihturan → http://www.fatihturan.com 01 Ekim 2008 13:20

  8. Arşiv sayfası yapımını böyle güzel anlatan bir başka yer bulamamıştım ve saçma bir şekilde üstesinden geliyordum.. Bu yazıyla güzel bir arşiv sayfası hazırladım, yakında da blogumda kullanmaya başlayacağım.
    Paylaşımın için sağolasın.

    Furkan Turan → http://www.yenibirfikir.net/ 07 Ekim 2008 23:09

  9. ÇOk teşekkür ederim verdiğiniz bilgiler çok işimize yaradı..başlıkları listeleyen bir arşiv sayfası ihtiyacımızdı..yalnız şunu merak ediyorum…konular arttıkça mesela yüzlerce konu olduğunda bu liste böyle uzayıp gidecek mi yoksa devam sayfası olarak bölünecek mi…aylara göre listeleme olayını çözebilirseniz daha da harika olacak..iyi çalışmalar dilerim..tekrar teşekkür ediyorum

    nevbahar → http://www.etraf.org 18 Ekim 2008 16:43

  10. Elinize sağlık. Harika olmuş.. Tamda böyle birşey yapmayı düşünürken..

    CMSGuide → http://cmsguide.net 25 Ekim 2008 11:33

  11. adresinizi kaybettim sanmıştım mail önemsizlere düşmüş meğer hemen ziyaret edip teşekkür edeyim dedim..verdiğiniz bilgilerden çok faydalandım hem arşiv sayfasından hemde yorum kutusu butonlarından ziyaretçilerimde çok memnun kaldı, gerçekten çok işimize yaradı, sorularımı cevapsız bırakmayıp kod uygulaması konusunda özel ilgilendiğiniz için tekrar teşekkür ederim…sınavlarınız da da başarılar dilerim

    nevbahar → http://www.etraf.org 25 Ekim 2008 12:26

Reaksiyonlar

Bu yazı hakkında 2 pingback ve 0 trackback yapıldı.

  1. yakuter » Seçmece Bunlar 2
  2. Seçmece Bunlar 2 | 3d Tasarım - 3d Modelleme - Web Tasarım

Yorum Yaz

Yorum yazabilmeniz için adınız, soyadınız ve e-posta adresinizi mutlaka girmeniz gerekiyor. E-posta adresiniz burada gösterilmeyecektir.

Lütfen yorumunuzu yazdıkdan sonra önizleme düğmesine basıp yazım hatalarınızı kontrol edin. Konu ile alakasız ve çok fazla yazım hatası bulunan yorumlar onaylanmayacaktır.

Ben Kimim?

Fatih Turan Benim adım Fatih Turan. 24 yaşındayım ve Rize’de yaşıyorum. Serbest web tasarımcılığı ve XHTML KITCHEN adını verdiğimiz servisimizde tasarımları XHTML/CSS’ye dönüştürmekle görevli front-end developerlardan biri olarak çalışıyorum. Anadolu Üniversitesi Açıköğretim Fakültesi İşletme bölümü mezunuyum. Okumaya Devam Et...

Bu blog Wordpress altyapısında çalışıyor olup Fatih Turan tarafından yapılmış olan Emerald adlı temayı kullanıyor. Fatih Turan ©