WordPress HTML Sitemap Oluşturma (Eklenti ve Eklentisiz)

May 13, 2020 Bilgi, Eklentiler kategorisinde yayınlandı.

İnternet sitelerinin ziyaretçi kaynaklarının başında arama motorları ve özellikle Google geliyor. Arama motorlarından ziyaretçi alabilmek için sitemizde bulunan sayfaların arama motorunun hafızasına alınmış olması, yani indekslenmiş olması gerekmekte. Aksi halde sorgulama yapıldığında bizim sayfamızı değerlendirip sıralamaya koyamaz.

Google gibi arama motorlarına sitemizdeki tüm sayfaları indeksletebilmek için sitemizde xml ve html sitemap yani site haritalarının bulunması oldukça önemli. Eğer xml sitemapimiz varsa ve bunu Search Console’a eklediysek, Google sitemapi ziyaret ederek tüm sayfalarımızı inceleyebiliyor. Ama bir de html sitemap yayınlamamız hem Google hem de ziyaretçilerimiz için oldukça faydalıdır. Denemelerime göre de html site haritası bulunan sitelerde indekslenme çok daha hızlı oluyor.

Bu yazıda WordPress kullanan siteler için nasıl html sitemap oluşturabileceğimiz anlatacağız.

Eklenti ile WordPress HTML Sitemap Oluşturma

5-6 tane WordPress html sitemap plugini denedim ancak diğerleri istediğim sonucu vermedi. Bu eklenti, incelediklerim eklentiler arasında en iyisi. “WordPress Simple HTML Sitemap” eklentisi ile kodlama bilmeyenler de wordpress sitelerine html sitemap ekleyebilirler.

WordPress Simple HTML Sitemap Kurulumu

Sitemap eklentisinin kurulumu oldukça basit. wp-admin/Eklentiler/Yeni Ekle sayfasından WordPress Simple HTML Sitemap diye aratarak eklentiyi bulup yüklüyor ve etkileştiriyoruz.

Eklenti etkinleştirildikten sonra wp-admin sayfamızın sol altında “WordPress Simple HTML Sitemap” diye bir bağlantı oluşuyor. Bu sayfaya girdiğimizde bizi birkaç basit ayar bekliyor.

Pages Sayfası:

Wordpress HTML Sitemap Oluşturma

Posts Sayfası:

Wordpress HTML Sitemap Oluşturma

Ek Bilgiler:

“Documentation” sayfasına girdiğinizde ise eklentinin kullanılabilen tüm fonksiyonlarına ilişkin bilgilere ve kısakodlara ulaşabiliyoruz. Örneğin kısakodun içine show_date=”true” ifadesi eklendiğinde tarihler de çıkıyormuş.

Kullanabileceğimiz temel kısakodlar şu şekilde:

Sayfaları listeleme:

[wshs_list post_type="page" name="Page Sitemap" order_by="date"]

Yazıları listeleme:

[wshs_list post_type="post" name="Post Sitemap" order_by="date"]

Sayfaları resimli listeleme:

[wshs_list post_type="page" name="Page Sitemap" order_by="date" show_image="true" image_width="60" image_height="60" content_limit="100" show_date="true" date_format="F j, Y"]

Wordpress HTML Sitemap Oluşturma

Yazıları resimli listeleme:

[wshs_list post_type="post" name="Post Sitemap" order_by="date" show_image="true" image_width="60" image_height="60" content_limit="100" show_date="true" date_format="F j, Y"]

Kategorilere ayırarak yazıları listeleme:

[wshs_list post_type="post" name="Kategori Adı" order_by="date" taxonomy="category" terms="kategori-kisa-isim"]

Wordpress HTML Sitemap Oluşturma

Kategorilere ayırarak yazıları listelerken yukarıdaki kodda “Kategori Adı” ve “kategori-kisa-isim” alanlarını değiştirmeli ve her kategori için bu kodu tekrar kullanmalısınız. Yazılar/Kategoriler sayfasında kategoriyi hızlı düzenle demek suretiyle “kategori-kisa-isim” öğrenmek mümkün.

Eklensiz WordPress HTML Sitemap Oluşturma

Eğer tema dosyaları hakkında az çok bilginiz varsa, kolayca kendi sitemapinizi oluşturabilirsiniz. Yapılması gereken adımlara bakalım.

Özel Tema Dosyası Oluşturma

Öncelikle tema klasörümüzdeki page.php dosyasının kopyasını oluşturup adını “site-haritasi.php” olarak değiştirin. Dosyayı açıp, en üste

<?php
/*
Template Name: Site Haritası
*/
?>

Kodunu yapıştırıp kaydedelim. “wp-admin/Sayfalar/Yeni Ekle” bölümünde başlığa Site Haritası gibi bir başlık yazalım ve sağ taraftaki “Sayfa Özellikleri” kutucuğundaki “Şablon” alanından “Site Haritası”nı seçelim. Yazıyı yayımlayalım. Yayımlanan sayfayı açtığımızda içerik görmeyeceğiz çünkü içerik yazmadık. Bu sayfa, yukarıda özel olarak oluşturduğumuz site-haritasi.php dosyasını kullanıyor. Dolayısıyla bu dosyada yaptığımız her değişiklik, “Site Haritası” sayfaımızı etkileyecek.

site-haritası.php dosyasını editörde açalım ve içeriği çağıran kodun olduğu kısmı bulalım. Bu çoğunlukla

<?php the_content('<p class="serif">Devamını oku &raquo;</p>'); ?>

kodudur. the_content ifadesini içeren satırın altında denemelerimizi yapabiliriz. Başarılı olursak, Site Harıtası sayfasının içerik alanının hemen altında haritamızı görebileceğiz.

Sitedeki Tüm Yazıları Gösterme

Sitemizdeki tüm yazıları göstermek için şu kodu, yukarıda belirttiğimiz yere yağıştıralım:

<h2>Yazılar</h2>

<ul>
<?php $recent = new WP_Query("showposts=10000"); while($recent->have_posts()) : $recent->the_post();?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

Bu kod numarasız şekilde tüm yazıları listeleyecektir. Görebileceğiniz üzere kodda showposts=10000 diye bir ifade var. Buradaki sayı, göstermek istediğimiz yazı sayısıdır. 1 yazarsanız, en yeni 1 yazı gösterilir. Eğer numaralı gösterilmesini istiyorsak, ul’lari ol yapmalıyız. WP_Query alanının içini şu şekilde değiştirelim:

showposts=10000&orderby=title&order=asc&cat=1

Bunun anlamı: 10000 tane yazı getir, başlığa göre sırala, sıralamayı düşükten yükseğe doğru yap(A harfinden başla Z’ye doğru git), sadece ID’si 1 olan kategoriden yazılar getir.

Bu kodla istediğimiz gibi oynayabiliriz. Örneğin site haritamızda yazıları kategorilere bölebiliriz. Tek yapmamız gereken “cat=” ifadesini kullanmak.

Sitedeki Tüm Sayfaları Gösterme

Yukarıdaki koda bu kez, sadece sayfaları getir ifadesini ekleyeceğiz:

<ul>
<?php $recent = new WP_Query("showposts=10000&post_type=page&orderby=title&order=asc"); while($recent->have_posts()) : $recent->the_post();?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

post_type=page ifadesi ile sadece sayfaların çağrılmasını sağladık.

Sitedeki Tüm Kategorileri Gösterme

Bu kod ile sitedeki tüm kategorileri, tanımları ve içerdikleri yazı sayısı ile beraber listeleyebiliriz.

<?php
$categories = get_categories( array(
'orderby' => 'name',
'order' => 'ASC'
) );

foreach( $categories as $category ) {
$category_link = sprintf(
'<a href="%1$s" alt="%2$s">%3$s</a>',
esc_url( get_category_link( $category->term_id ) ),
esc_attr( sprintf( __( '%s', 'textdomain' ), $category->name ) ),
esc_html( $category->name )
);

echo '<p>' . sprintf( esc_html__( 'Kategori: %s', 'textdomain' ), $category_link ) . '</p> ';
echo '<p>' . sprintf( esc_html__( 'Tanımı: %s', 'textdomain' ), $category->description ) . '</p>';
echo '<p>' . sprintf( esc_html__( 'İçeridiği yazı sayısı: %s', 'textdomain' ), $category->count ) . '</p>';
}
?>

Eğer tanım ve yazı sayısı işinize yaramazsa, bu alanları silebilirsiniz.

Sitedeki Tüm Etiketleri Listeleme

Bu ile de sitedeki tüm etiketleri listelemek mümkün.

<ul>
<?php
$tags = get_tags('post_tag');
if ( $tags ) :
foreach ( $tags as $tag ) : ?>
<li><a class="tag" href="<?php echo esc_url( get_tag_link( $tag->term_id ) ); ?>" title="<?php echo esc_attr( $tag->name ); ?>"><?php echo esc_html( $tag->name ); ?></a></li>
<?php endforeach; ?>
<?php endif; ?>
</ul>

Hem eklenti hem de eklentisiz olarak nasıl “WordPress html site haritası” yapabileceğimizi görmüş olduk. Sorularınız olursa yorum alanını kullanabilirsiniz.

Yorum Yapabilirsiniz

Yorumunuz yönetici onayından sonra görülebilecektir.