WordPress’te üye girişi yapmış ve yapmamış kişilere ayrı içerik gösterme

WordPress’te oldukça ihtiyaç duyduğumuz bir özellikten daha bahsetmek istiyorum bugün. Kendi temamı hazırlarken de sıkça kullandığım bu detay sayesinde sayfa yüklenme süresi de önemli ölçüde arttığı için nasıl yapıldığı hakkında konu açma ihtiyacı duydum.

Kendi hazırladığım temada üye girişi yapmış kişilere ve yapmamış kişilere kapatmış olduğum bölümler sayesinde sayfa yüklenme süresinin artma sebebi oldukça basit bir fikir. Sitenizi ziyaret eden herkes üye olmuyor ve ziyaret eden herkes için de aynı dosyaları (js, css, resim vb.) göstermenin bir anlamı olmadığı gibi limitli internet kullanan kişilerin de internetini boşu boşuna harcadığınız gibi kendi hosting limitlerinizi de zorladığınız için ekstra maliyetlere sebep olabiliyorsunuz.

Bu tarz bir optimizasyon ile elde edeceğiniz artılar; sayfa açılış süresi hızı ve hosting limitlerinden tasarruf etmek  diyebiliriz. Çünkü ziyaretçiler sadece içeriğinize odaklanır ve diğer dosya yüklemeleri ziyaretçilerin işine yaramayacağı gibi sitenin geç yüklenmesine sebep olacağı için hemen çıkma oranının da artmasına sebep olacaktır. 

Bu nedenlerden dolayı websitenizi iyice gözlemleyip hangi içeriklerin üyelerin işine yaramayacağını tespit ederek, üye girişi yapmamış kişilere gizlemeniz sayfa hızı açısından önemli bir detaydır.

Üye olmayanlara sayfa içeriğini gizleme

Bu kod ile üye girişi yapmamış kişilere içeriğin yüklenmesini durdurabildiğiniz gibi sayfa içeriğini ziyaretçilere gizlemek için de kullanabilirsiniz. 

Kod buraya gelecek

<?php if (!is_user_logged_in()) { ?>
Bu alana ekleyeceğiniz içerikleri sadece ziyaretçiler görebilir, üye girişi yapmış kişiler buradaki içeriği göremezler
<?php } ?>

Üyelere sayfa içeriğini gizleme

Üye olmayanlara sayfa içeriğini gizlediğiniz gibi bazı bölümleri de üyelere gizlemeniz gerekebilir. Mesela benim kullandığım bazı Javascript ve Css kodları üye girişi yapmak için gerekli olan detaylar. Üye olmuş ve giriş yapmış kişilere bu kodları göstermenin anlamı olmadığı gibi sayfa hızı ve kullanıcı deneyimi açısından bir gereklilik.

Uye olanlara içeriği gizleme kodu

<?php if (is_user_logged_in()) { ?>
Bu alana ekleyeceğiniz içerikleri sadece üyeler görebilir, üye girişi yapmamış kişiler buradaki içeriği göremezler
<?php } ?>

Her iki kod arasındaki detayı fark ettiniz mi? Bir tanesinde ünlem işareti var, bir tanesinde yok. Onun dışında her şey aynı.  Ünlem koyduğunuz zaman sadece ziyaretçiler görür, ünlem koymazsanız sadece üyeler görür. Çok uzun zaman sonra kodları incelediğinizde, ünlem detayına bakarak neyi üyelerin görebildiğini ve neyi ziyaretçilerin görebildiğini ayırt edebilirsiniz.

Daha farklı bir yöntem

Tek kod ile bu iki detayi bir arada kullanabilirsiniz. Kullanılmasını çok tavsiye etmiyorum çünkü if ve elseler php kodların içinde fazlaca bulunduğu için bir süre sonra hangi satırın neye yaradığını tespit etmek hem zaman kaybı hem de kafa karışıklığına neden olabilir.

Her ikisini bir anda kullanma

<?php if (!is_user_logged_in()) { ?>
    Bu alanı sadece ziyaretçiler görebilir.
<?php } else { ?>
    Bu alanı sadece üyeler görebilir.
<?php } ?>

Yada tam tersi şeklinde de kullanabilirsiniz.

<?php if (is_user_logged_in()) { ?>
   Bu alanı sadece üyeler görebilir.
<?php } else { ?>
     Bu alanı sadece ziyaretçiler görebilir.
<?php } ?>

Ben bazı özellikler için birkaç farklı detay kullandığım için bazen bana zorluk çıkarabiliyor. Benim kullandığım kodlarda bir içeriği görebilmek için sadece üye girişi yapmış olmak yetmiyor. Bazı alanları görebilmek için bir de Mycred eklentisinde yeterli puana sahip olmanız gerekiyor. Yoksa tek başına kafa karışıklığı oluşturmuyor. Yine de üyelere ve üye olmayanlara ayrı ayrı kod kullanmak daha elverişli oluyor bana göre.

Peki bu kodlar ile sayfadaki bir detayı sadece üyelere gösterecek şekilde kullanabilir miyiz?

Nedense bu soruyu da sorduğunuzu duyar gibi oldum. Evet yapabilirsiniz ama biraz daha uğraştıracak sizi. Çünkü WordPress’te belirli bir paragrafı yada belirli bir linki almanız oldukça zor. Bunun için belirli filtreler kullanmanız gerekiyor. Mesela her yazıdaki linki gizle yada 2. veya 3. paragrafı sadece üyelere gösterecek şekilde ayarlayabilirsiniz. Ama bu filtreler de alakasız olan yazılarda da bozulmaya sebep olacağı için en faydalı yöntem özel alanlar kullanmaktır.

WordPress’te özel alan kullanımı linkinden detaylı bir şekilde özel alanları nasıl oluşturabileceğinizi aşama aşama anlattım. Oluşturduğunuz özel alanlar içine link, resim, video yada belirli bir paragrafı ekleyerek kullanabildiğiniz gibi yukarıdaki kodları kullanarak üyelere yada üye olmayanlara belirli içerikleri gizleyebilir yada gösterebilirsiniz.

Basit ama ders niteliğinde, ihtimalleri düşünerek anlattığımız bu konunun umarım faydası olmuştur. Konu hakkındaki düşüncelerinizi ve fikirlerinizi de merak etmiyor değilim hani. Spam yorumlardan dolayı yorum kısmını da sadece üyelere açık bıraktığım için oldukça üzgünüm. Hazır spam konusu açılmışken ne gibi eklentilerin ve özelliklerin de spama sebep olduğu konusunda bir yazı yazmam gerekiyor sanırım. Bir sonraki konumuz bu olsun o zaman.


Ali senin düşüncelerini merak ediyor.Bir yorum yaz