Sosyal Web Bağlantıları

E-Posta Formu

E-mail It
28 Eylül 2008 19:05

Wordpress’te Arşiv Sayfası Nasıl Yapılır?

Kategori: Wordpress

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.