Bildiğiniz gibi gün geçtikçe wp’nin kullanım alanları artıyor ve yeni ihtiyaçlar ortaya çıkıyor. Şimdi bu ipucuyla, bir kategoriye ait yazıları, üye olmayanlardan gizleme yolunu öğreneceksiniz.
WordPress’in güzel fonksiyonlarından olan, is_user_logged_in fonksiyonu ve in_category fonksiyonunu kullanacağız.
is_user_logged_in fonksiyonu ile kullanıcının üye mi yoksa ziyaretçi mi olduğunu kontrol edeceğiz.
in_category ile gizlenmesini istediğimiz kategori içerisindeki bir yazı olup olmadığını kontrol edeceğiz.
Yapılacak İşlemler
- Temanız içerisindeki functions.php dosyasını açınız.
- İçerisine aşağıdaki kodları ekleyiniz:
function kategori_sinirlayici($content){ $fix = "3,5,7"; if(in_category($fix)){ if ( !is_user_logged_in() ) { return "<p class='uyari'>Bu kategoriye ait yazıları okumak için <a href='".get_bloginfo('url')."/wp-login.php'>giriş yapmalısınız</a>.</p>"; } else { return $content; } } else { return $content; } } add_filter('the_content', 'kategori_sinirlayici'); - Dosyayı kaydedin ve kapatın.
Yukarıdaki kodlarda görmüş olduğunuz, fix=”3,5,7″ kısmındaki, 3,5,7 sayıları kategori id’lerini temsil etmektedir. Eğer kategori id’leriniz 33,156,84 ise, bunları silip yerine size ait idleri yazmanız gereklidir.
Bu işlemleri yaptıktan sonra belirlediğiniz kategorilerde, “Bu kategoriye ait yazıları okumak için giriş yapmalısınız.” yazısı görülecek, diğer yazılarınız ise normal şekilde gösterilecektir
Düzenlemeler:
- 30.06.2009 – CSS ile düzenlemek için p tagı ve uyari sınıfı eklendi.
- 01.07.2009 – Üye Giriş Linki eklendi.

“WordPresste Bazı Kategorileri Üyelere Özel Yapmak” için 38 Yorum var
peki bu kategorideki yorumları nasıl gizleyebiliriz? son yorumlarda gözükmesin mesala??
merhaba hocam bende bir kate goriyi uyeler görebilsin istiyorum sizin verdiğiniz kodu koydum ama çalışmıyor yardımcı olurmusunuz teşekkür ederim
merhabalar ben wordpress sitemde kategoriye uyarı sayfası eklemek istiyorum, yani o kategoriye ait bir yazı acılmak istendiginde once bir uyarı sayfası cıkmasını saglayabilirmiyiz?
denedim fakat olmadı şu an 2.9.1 sürüm kullanıyorum bana çok gerekli acaba bu konuda yardım alabilirmiyim.
Güncelleme ne durumda acaba?
Anasayfaya bakabilirsiniz
Çok işime yarayacak birşey teşekkürler fakat wordpressin son sürümü için uygun değil sanırım. Bir işe yaramadı. Yardımcı olur musunuz?
@dea, güncelleme yapmam gerekiyordu unutmuşum
bir güncelleme çok iyi olur.
teşekkürler
Teşekkür ediyorum. Sabırsızlıkla bekleyeceğim. İşlerinizde kolaylıklar diliyorum.
Bugün 2.7.1 ile de 1 den fazla kategoride sorun olduğunu farkettim. Bunun bir çözümünü bulabilirseniz çok memnun olacağız.
Amatörce yürüttüğümüz okul sitemizin sürekliliği için bu kod oldukça işlevsel bir yere sahip.
$fix = “3,5,7″; burada ki kategori adeti 1 taneyi geçince sorun veriyor. Yani iki veya daha fazla kategori ekleyemiyorum. yardımcı olur musun
Kusura Bakma Hocam Flood Yapıorum Ama Herhangi Bi Eklenti Ekleyecekmiyiz Yada functions.php Dosyasının Neresine Ekleyeceğiz? http://rapidshare.com/files/259025368/functions.php.html Dosyamı Verdim Yardımcı Olurmusun?
Hocam Ekledim En Aşağıya Verdiğin Kodu Localhostta Açtım Deişen Bişey Yok Gene Aynı?
hocam ihtiyacım için bu bilgilendirmeyi yapmana çok sevindim ama küçük bi maruzatım vardı başlıklarla birlikte tamamen gizleyebilsek nasıl olurdu, ben biraz uğraştım ama o şekle getiremedim
Return içerisindeki mesaja css atanabilir mi? nasıl yapacağız?
diğer gereksiz yorumlarımı kaldırır mısınız? sonuçta benden kaynaklanan bir yanlışlık oldu.
bu işlevsel kodlar için teşekkür ediyorum. şu son kod inanın çok işimize yarayacak.
Eee vallahi şimdi oldu. teşekkürler.
Else ve return kodlarıyla oynayınca oluyor ama tam anlamış değilim.
Semih bey, kodu az önce sitemizde denedik. 8 ve 11 nolu kategorileri ilgili yerlere girdim. ne yazık ki çalışmadı. değişen bir şey yok.
wp 2.7.1 sürüm kullanmaktayız.
Teşekkürler semih bey.
üye girişi yapmış olmayasınız?
Şu kısımı:
return "Bu kategoriye ait yazıları okumak için giriş yapmalısınız.";şu şekilde yaparsanız:
return "<p class='test'>Bu kategoriye ait yazıları okumak için giriş yapmalısınız.</p>";css içerisinde:
.test{background:#000;
}
şeklinde bir düzenleme yapabilirsiniz
onu yapmak için sıfırdan query düzenlemek ve o yazıları sorgudan çıkarmak. ayrıca yeni bir category dosyası oluşturup, onun içinde düzenleme yapmak gerekli
hmm baya uzun işi varmış, ben conntent kodunun dan geldiğini düşünmüştüm ve onu ile değiştirirsem düz mantık olur diye hesaplamıştm ama olmadı
uyarı mesajı içine wp-login giriiş kodunu da eklemek istiyorum. Mesaj içinde wp nin login kodu çalışmadı ama.. yani giriş yapmalısınız yazısında link olmalı ama nasıl?
Yazıyı ve kodu güncelledim
güncelleme için teşekkürler ama get_bloginfo kodu giriş linkine gitmiyor.
.site_url(’wp-login.php’). böyle yapınca oldu .. doğrudur umarım. denemeyle buldum da.
Böyle bir kullanım hiç görmedim
Yukarıdaki kodu güncelledim bu arada
Çıkış yapmayı unutmadınız umarım?
Buradaki kodları deneyin: http://wpuzmani.pastebin.com/m349875b4
Ayrıca $fix karşısında yazan numaralar kategori id’leri olacak
Yok Hocam Gene Aynı Yaa Deişen Bişey Yok Idlerini Yazdım Katagorilerin Zaten Üye Girişi Yapıorum Gene Olmuor Var Bişiler Bunda Yaa Seodan Kaynaklanır Dedim Seoyu İptal Ettim Gene Aynı
Bu da enteresan tabi
diğer arkadaşlarda çalışırken siz de hata vermesi normal değil…
3.satırı şu şekilde düzenleyip, yeniden deneyin:
[php]
if(in_category(array($fix))){
[/php]
malesef olmadı. temadan kaynaklanır diye düşündüm 2 – 3 temadan denedim ama sonuç aynı
Sanırım sürümlerden kaynaklı, çünkü 2.7de çalıştığını görmüştüm
Yoksa eklemem biliyorsunuz…
Tekrar incelemem gerekiyor, şimdilik kullanmazsanız iyi olur… En kısa zamanda bakacağım.