WordPress için 2 güzel seo fonksiyonu


Amatör arkadaşlara bir kıyak yapıp şu iki güzel fonksiyonu yazayım. Sayfanıza seo değeri katacak description ve keywords meta etiketlerini bunlarla herhangi bir eklenti kullanmadan yapabilirsiniz.

wordpress seo

Description için excerpt den veri çekiliyor, temanın functions.php dosyasına aşağıdakini eklemeliyiz, bu fonksiyon girdilerden içerik alacak, kategori açıklamalarını alacak ana sayfa ve etiket sayfalarında ise varsayılan açıklamayı ekleyecek.

function meta_description() {
/* >> bu kısımda istediğiniz değişiklikleri yapın */
$default_blog_desc = 'Guncel Turkce blog. – Volkan Yilmaz ve saz arkadaslari web gunlugu.'; // varsayılan description (etiket sayfaları ve ana sayfa)
$post_desc_length = 22; // maksimum description uzunluğu
$post_use_excerpt = 1;
$custom_desc_key = 'description'; // girdilere description isimli bir özel alan eklerseniz onun ismi.
/* << bu kısımda istediğiniz değişiklikleri yapın */

global $cat, $cache_categories, $wp_query, $wp_version;
if(is_single() || is_page()) {
$post = $wp_query->post;
$post_custom = get_post_custom($post->ID);
$custom_desc_value = $post_custom["$custom_desc_key"][0];

if($custom_desc_value) {
$text = $custom_desc_value;
} elseif($post_use_excerpt && !empty($post->post_excerpt)) {
$text = $post->post_excerpt;
} else {
$text = $post->post_content;
}
$text = str_replace(array("\r\n", "\r", "\n", " "), " ", $text);
$text = str_replace(array("\""), "", $text);
$text = trim(strip_tags($text));
$text = explode(' ', $text);
if(count($text) > $post_desc_length) {
$l = $post_desc_length;
$ellipsis = '';
} else {
$l = count($text);
$ellipsis = '';
}
$description = '';
for ($i=0; $i<$l; $i++)
$description .= $text[$i] . ' ';

$description .= $ellipsis;
} elseif(is_category()) {
$category = $wp_query->get_queried_object();
$description = trim(strip_tags($category->category_description));
} else {
$description = (empty($default_blog_desc)) ? trim(strip_tags(get_bloginfo('description'))) : $default_blog_desc;
}

if($description) {
echo "$description";
}
}

Yukarıdakini kullanmak için örnek:
<meta name="description" content="<?php echo meta_description(); ?>" />

Aşağıdaki girdideki etiketlerin isimlerini yazdıran fonksiyon, bunu hem temanın fonksiyon dosyasına bir fonksiyon aatyarak hem de manuel kullanabilirsiniz. Temanın functions.php dosyasına eklenecek kod aşağıdaki gibi.

function terimler() {
$posttags = get_the_tags();
if ($posttags) {
foreach ($posttags as $tag) {
$tagnames[count($tagnames)] = $tag->name;
}
$comma_separated_tagnames = implode(", ", $tagnames);
print_r($comma_separated_tagnames);
}
return $terimler;
}

Bunu kulanmak için örnek:
<meta name="keywords" content="<?php echo terimler(); ?>" />

Gördüğünüz gibi çok basit şeyler, bunları farklı şekillerde de kullanabilirsiniz sadece meta etiketleri değil, kolay gelsin.

Yazar: Volkan Yılmaz

Digital Marketing & Growth Hacking #SEO #wolkanca #cycling merhaba@volkanyilmaz.com.tr

“WordPress için 2 güzel seo fonksiyonu” için 15 yorum

  1. beceremeyenler içinde all in one seo eklentisini önerelim daha hoş olsun. ikisinde de sorgu yapılıyor doğal olarak wordpress cpu sorunu yaşayanlara el ile eklemeleri önerilir. iyi bir optimizasyon için header ve footer deki sorgularıda el ile girmekte fayda var.

  2. header örnek: <link rel="stylesheet" href="" type="text/css" media="screen" />

    olması gereken:

    bunun gibi sorguları el ile girerek cpu'nun tavan yapmasını engelleyebilirsiniz.

    herkese wp-optimize eklentisi kullanmalarını öneriyorum spam yorumları ve revisionları db'den silerek db'nizin şişmesini önliyor ve haliyle db yi optimize ediyor, şişik bir db her zaman sorun yaratır. ayrıntılı bilgi verebilirim istenildiği taktirde.

    not: iki yorumum birleştirilirse sevinirim.

  3. yukarıdaki örneklerde kodlar spam avına düşmüş. kimse hiç birşey anlamayacak 😛

  4. şimdi yorumu birleştirmekle uğraşamam özgür yorumun için teşekkür ederim.

    okuyucular benim görüşümü merak edebilir yazayım ben seo eklentilerini tavsiye etmiyorum yazımda eklediğim fonksiyonlar gibi kendi yazdığınız şeyler ileriye yönelik vs. birçok açıdan daha kullanışlıdır.

  5. doğru diyorsunda biliyosun biz türkler işin her zaman kolayına kaçıyoruz, senin yaptığın yöntemde güzel ama bu devirde bunlarla uğramak istemiyor kimse, eklenti ile 10sn. almaz bu yöntem. ayrıca şöyle birşey var eğer kullanıcıların siteleri filtreye girerse desc. değiştirecekler vs. sürekli uğraşmak istemeyenler için, all in one seo eklentisi bire bir.

  6. senin yazdığın şeyleri ben yıllar önce büyük ihtimalle yazmışımdır özgür arşivde arayıp bulabilirsiniz. anlamak isteyen internette arara bulur sen merak etme anlayan anlar 🙂

  7. güzel bir paylaşım gerçekten ama beceremeyeceğim için all in seo ya devam ne yazıkki ama bi subdomain kurayım deniyeyim bakalım yinede 🙂 ne demişler en güzel wp eklentisiz wp 😀

  8. 🙂 kurnazlık yapıp etiket kasmıstıgımdan dolayı sitemap oluştururken aşırı cpu + sitemap *** sayını geçtigi için yok google ws. gibi yerlere eklerken sorun yaşama yani bunların hepsi başıma geldi bence etiket fazla kasmayın ileride çok büyük sıkıntı çekerseniz.

  9. sayın ahmet site haritasını bölebilirsiniz bu wordpress de programlanır. tabii gereksiz fazla fazla etiket eklemek de pek gerekli değil.

    iyi çalışmalar.

  10. meta_description fonksiyonunda etiketleri nasıl kaldırabiliriz ? etiket sayfasında anasayfanın description’ı olmasını istemiyorum.

    şu anda anasayfa ve bütün etiket sayfalarının açıklaması aynı oluyor. :/

  11. @hakan aşağıdaki kullanım senin ilacın 😉

    <?php if ( is_home() ) : //ana sayfa ?>
    <meta name="description" content="ana sayfada görünmesini istediğin açıklama" />
    <meta name="keywords" content="ana, sayfada, görünmesini, istediğin, terimler" />
    <?php elseif ( is_tag() ) : //etiket arşivleri ?>
    <meta name="description" content="etiket sayfalarında görünmesini istediğin açıklama" />
    <meta name="keywords" content="etiket, sayfalarında, görünmesini, istediğin, terimler" />
    <?php else : //diğer tüm sayfalar ?>
    <meta name="description" content="<?php echo meta_description(); ?>" />
    <meta name="keywords" content="<?php echo terimler(); ?>" />
    <?php endif; ?>
    
  12. volkan hocam bunu header.php’ye mi ekleyeceğiz nasıl oldu kafam karıştı şimdi.