WordPress'de yazılara girdiğimiz yazı etiketlerini, SEO amacıyla, tekil yazılarda sayfanın pencere başlığında gösterebiliriz.
Aşağıdaki kodları temanızın Üst Kısım (header.php) dosyasında </title> kodunun hemen öncesine ekleyin. Böylece tekil yazılarda varsa yazının etiketlerini gösterebilirsiniz.
- <?php
- if (is_single()) {
- $posttags = get_the_tags( (int) $post->ID);
- if ($posttags) {
- foreach($posttags as $tag) {
- echo ' ' . wp_specialchars($tag->name);
- }
- }
- }
- ?>
All in One SEO Kullanıcıları İçin Çözüm
Yukarıdaki yöntem ne yazıkki All in One SEO eklentisinin etkin olduğu sitelerde işe yaramıyor. Çünkü bu eklenti başlığı alıp, yeniden biçimlendiriyor ki bu esnada bizim yaptığımız değişiklikleri imha ediyor.
Bunun üzerine bu eklentiyi şöyle bir inceledim, eklenti aslında etiketlerle iş yapıyor ancak tekil yazılar için değil de sadece üst kısım (header) alanında 'Keywords' bölümünü doldururken kullanıyor.
AIO kullananlar içinde elbette çözümüm var ama biraz uzun olabilir ve AIO'yu güncellediğinizde AIO içerisinde yapacağımız değişikliği tekrar yapmanız gerekecek. Haydi başlayalım!
Öncelikle aşağıdaki kodla temamızın Tema fonksiyonları (functions.php) dosyasına ekliyoruz.
- function yg_etiketler() {
- global $post;
- if (is_single()) {
- if ( $post ) {
- $posttags=get_the_tags($post->ID);
- if ($posttags) {
- $liste = '';
- foreach ($posttags as $tag) {
- $liste .= ' '. wp_specialchars($tag->name);
- }
- return $liste;
- }
- }
- }
- return '';
- }
- function yg_aio_keywords() {
- global $post;
- if ( is_single() ) {
- if ($post) {
- $keywords = null;
- $keywords = stripcslashes(get_post_meta($post->ID, "keywords", true));
- if (isset($keywords) && !empty($keywords)) {
- $keywords = preg_replace('/\s+/',' ', str_replace(',', ' ', $keywords));
- return $keywords;
- }
- }
- }
- return '';
- }
Böylece 'yg_etiketler' adında, tekil yazılarda yazı etiketlerini getiren bir fonksiyon, 'yg_aio_keywords' adında, yazı yazarken sayfanın alt kısmındaki AIO alanındaki 'Keywords' bölümüne girdiğimiz anahtar kelimeleri getiren bir fonksiyonumuz daha olmuş oldu.
Şimdi de eklentide bulunan 'all_in_one_seo_pack.php' dosyasını açıp aşağıdaki satırı bulun:
- $new_title = str_replace('%post_author_lastname%', ucwords($authordata->last_name), $new_title);
Bu satırın hemen altına aşağıdaki kodları ekleyin:
- $new_title = str_replace('%etiket%', yg_etiketler(), $new_title);
- $new_title = str_replace('%anahtar%', yg_aio_keywords(), $new_title);
İlgili yerin son hali aşağıdaki gibi olacak:
- $new_title = str_replace('%post_author_lastname%', ucwords($authordata->last_name), $new_title);
- $new_title = str_replace('%etiket%', yg_etiketler(), $new_title);
- $new_title = str_replace('%anahtar%', yg_aio_keywords(), $new_title);
Merak etmeyin artık son adıma geldik. AIO'nun ayarlarına giriyoruz ve 'Post Title Format' bölümündeki ayarı resimdeki gibi ayarlıyoruz.
Buradaki yöntem sadece tekil yazılarda işe yarayacaktır, bu nedenle oluşturduğumuz %etiket% ve %anahtar% ifadelerini diğer ayarlarda kullanmayın. Herşeyi doğru yaptıysanız tekil yazıya girdiğinizde başlık çubuğunda resimdeki gibi bir görüntü elde edeceksiniz.
Aslında o kadar da uzun değilmiş.
Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=907.
Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.
Tarih: 23 Haziran 2009 Saat: 14:44
Faydalı bilgiler için teşekkürler Yakup bey..
Tarih: 24 Haziran 2009 Saat: 00:49
Bir Not: All in One SEO Pack eklentisi yüklü ise, bu değişiklik bir işe yaramayacaktır.
Tarih: 24 Haziran 2009 Saat: 02:36
@İlker, yazıyı yeniden düzenledim AIO için de bir çözüm sundum. Alın da hayrını görün. 🙂
Tarih: 24 Haziran 2009 Saat: 02:42
Şimdi daha güzel oldu 🙂
Tarih: 27 Haziran 2009 Saat: 14:12
Merhabalar.
Blocks temasını kullanıyorum. Function'a kodları ekledim.
Eksiksiz yaptım ama post'u açtığımız zaman sayfa boş bir hali alıyor
Teşekkürler.
Tarih: 03 Temmuz 2009 Saat: 03:30
hocam, all in one seo konusu açılmışken sizden bir ricam var, yardımcı olursan herzaman ki gibi çok sevinirim. tekil sayfada metaların hepsi çıkıyor.
yalnız kategoriler de sadece 'description' ve 'canonical' var. etiket sayfasında ise tek 'canonical' var. ben istiyorum ki tüm sayfalar tekil sayfa da olduğu gibi tüm metalar çıksın.
örneğin, etiket sayfasında description olarak 'xxx etiketli yazılar' , keyword olarak da 'xxx' yazabilir. Teşekkürler
Tarih: 15 Temmuz 2009 Saat: 05:45
Yararlı bilgiler için teşekkür ederim.
Post Title Format'a yazdığımız %anahtar% ne işe yarıyor acaba ?
Tarih: 15 Temmuz 2009 Saat: 10:36
@yasin emre, İlgili bölüm, etiketleri başlığın istediğiniz yerinde göstermenizi sağlıyor. %anahtar% ifadesinin yerini değiştirerek, isterseniz etiketleri başlığın başında, ortasında ya da nerede isterseniz orada gösterebilirsiniz.