wmaraci reklam
lidertakipci

Author.php sayfasını özelleştirmek.

18 Mesajlar 3.578 Okunma
advertseo
wmaraci reklam

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 36 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)
Merhabalar.

Wordpress'te yazar sayfasını özelleştirmek istiyorum. Mesela iki tane linkim olacak.

--yazarın videoları--
--yazarın makaleleri--

Makalelere tıkladığım zaman. Yazarın sadece makale kategorisinden yazıları gelecek. Videolara tıkladığım zaman videolar kategorisisnden gelecek.

query_posts() metoduyla yapmayı düşünüyorum. Acaba bunun bir çözümü var mıdır ?
 

 

wmaraci
reklam

yakuphoca yakuphoca WP Sever Kullanıcı
  • Üyelik 11.07.2013
  • Yaş/Cinsiyet 43 / E
  • Meslek Öğretmen
  • Konum Hatay
  • Ad Soyad ** **
  • Mesajlar 212
  • Beğeniler 2 / 51
  • Ticaret 2, (%100)
Makaleler linki için aşağıdaki kodu
post_author); ?>
aşağıdaki ile değiştir
post_author).'/?makaleler'; ?>
yani linkin sonuna /?makaleler eklemiş ol. Eğer yazar linkinin sonunda / varsa '/?makaleler' yerine '?makaleler' yazın.
Aynı şeyi videlor linki için de yapın, '/?videolar'
author.php dosyasında da
$yazi_turu = 'post';
if ( isset($_GET['makaleler']) ) $yazi_turu = 'makale';
if ( isset($_GET['videolar']) ) $yazi_turu = 'video';


$yazi_turu değişkenini de döngüden önce query_posts fonksiyonu içerisine sokar, o yazı türünü listeletirsin.
 

 

Bilişim Teknolojileri Hayatım
http://www.yakuphoca.com

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 36 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)
Bu yöntemi tercih etmemiştim çünkü link yapısını bozuyor.
Ama benimde aklıma bundan başka yöntem gelmiyor.
Teşekkür ederim.
 

 

yakuphoca yakuphoca WP Sever Kullanıcı
  • Üyelik 11.07.2013
  • Yaş/Cinsiyet 43 / E
  • Meslek Öğretmen
  • Konum Hatay
  • Ad Soyad ** **
  • Mesajlar 212
  • Beğeniler 2 / 51
  • Ticaret 2, (%100)
Başka yöntemi şu an yok, ancak eğer isterseniz kalıcı bağlantılara yeni bir kural ekleyip,
/author/yazaradi/videolar şeklinde linkler oluşturup, gelen bilgileri alabilirsiniz.

http://wp-events-plugin.com/tutorials/creating-custom-permalinks-in-wordpress/
http://www.binarymoon.co.uk/2010/02/creating-wordpress-permalink-structure-custom-content/
adreslerindeki uygulamaları inceleyip, kendi kuralınızı oluşturabilirsiniz.
 

 

Bilişim Teknolojileri Hayatım
http://www.yakuphoca.com
wmaraci
wmaraci

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 36 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)
Evet böylesi daha anlamlı oldu sanırım. Teşekkür ederim.
 

 

moryesil moryesil WM Aracı Kullanıcı
  • Üyelik 26.01.2013
  • Yaş/Cinsiyet 37 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad M** Ç**
  • Mesajlar 66
  • Beğeniler 8 / 10
  • Ticaret 2, (%100)

yakuphoca adlı üyeden alıntı

Makaleler linki için aşağıdaki kodu
post_author); ?>
aşağıdaki ile değiştir
post_author).'/?makaleler'; ?>
yani linkin sonuna /?makaleler eklemiş ol. Eğer yazar linkinin sonunda / varsa '/?makaleler' yerine '?makaleler' yazın.
Aynı şeyi videlor linki için de yapın, '/?videolar'
author.php dosyasında da
$yazi_turu = 'post';
if ( isset($_GET['makaleler']) ) $yazi_turu = 'makale';
if ( isset($_GET['videolar']) ) $yazi_turu = 'video';


$yazi_turu değişkenini de döngüden önce query_posts fonksiyonu içerisine sokar, o yazı türünü listeletirsin.



benzer bir problemle cebelleşiyorum günlerdir. yardımlarınızı bekliyorum hocam.

yapmak istediğim şu. bir yönetim panelli özellikli site geliştiriyorum. Normal üyeler 2 farklı form ile yazı iletiyorlar. Biri "sipariş formu" Diğeri "Destek formu". Bu yazılar destek ve Sipariş diye iki kategoriye listeleniyor.

Ben de author.php iki başlık atmak istiyorum.

Siparişlerim
* deneme 1 post (21 Ağustos)
* deneme 2 post (22 Ağustos)
...

Destek taleplerim
* post 1 (tarih)
* post 2 (tarih)
...


bu içerikleri toplu olarak çekebiliyorum ama php bilgim zayıf ve pek fazla müdahale edemiyorum. Kategorisel olarak gruplandırıp nasıl listeleyebilirim.

artı bir ikinci sorum olacak:

yazara ait olan bu sayfayı gizleyebilir miyiz. yani biri link ile site/author/username sayfasına girdiğinde sayfa bulunamasın, ala kullanıcı kendi girdiğinde yukarıda bahsettiğim listelemeler yapılsın.

şimdiden ilginiz için teşekkür ederim..
 

 

Olmaya devlet cihanda bir nefes sıhhat gibi

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 36 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)
Hoca yakup hocaya gelmiş ama elimden gelirse yardımcı olayım :D

2. sorudan başlayayım. Author php dosyana bir yazar kontrollü yaptırırsan bunu çözebilirsin.

if(is_author){
// Bu kısma içerikler gelir
}
else {
// buraya 404 gelebilir.
}

Yazarlar sayfasını sadece yazarlar görebilir. Ama bu şekilde her yazarın birbirinin sayfasına gireceğini unutma. Burada sadece bu sitede yazar mısın değil misin diye kontrol ediyoruz.

//------------------------

1. sorudan da şunu anladığım şu, WP author dosyasına başvurduğunda(site/author/username gibi) o yazarın sipariş ve destek formları dökülsün istiyoruz. Sadece o kişiye ait yazılar dökülecek istiyorsun. Eğer doğru anladıysam en azından bu formdan gelen verileri DB ye nası kaydetttiğini görmek lazım diye düşünüyorum. Yeni bir tablo mu açtın yoksa post olarak mı kaydediliyor onu bilmek gerek.
 

 

yakuphoca yakuphoca WP Sever Kullanıcı
  • Üyelik 11.07.2013
  • Yaş/Cinsiyet 43 / E
  • Meslek Öğretmen
  • Konum Hatay
  • Ad Soyad ** **
  • Mesajlar 212
  • Beğeniler 2 / 51
  • Ticaret 2, (%100)
Öncelikle yazıları nasıl kaydediyorsunuz? Normal yazı olarak mı yoksa bir tabloya falan mı kaydediyorsunuz?
Mevcut düzenlediğiniz bir author.php dosyası varsa buraya ekleyebilir misiniz?
 

 

Bilişim Teknolojileri Hayatım
http://www.yakuphoca.com

moryesil moryesil WM Aracı Kullanıcı
  • Üyelik 26.01.2013
  • Yaş/Cinsiyet 37 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad M** Ç**
  • Mesajlar 66
  • Beğeniler 8 / 10
  • Ticaret 2, (%100)

olkunmustafa adlı üyeden alıntı

Hoca yakup hocaya gelmiş ama elimden gelirse yardımcı olayım :D

2. sorudan başlayayım. Author php dosyana bir yazar kontrollü yaptırırsan bunu çözebilirsin.

if(is_author){
// Bu kısma içerikler gelir
}
else {
// buraya 404 gelebilir.
}

Yazarlar sayfasını sadece yazarlar görebilir. Ama bu şekilde her yazarın birbirinin sayfasına gireceğini unutma. Burada sadece bu sitede yazar mısın değil misin diye kontrol ediyoruz.

//------------------------

1. sorudan da şunu anladığım şu, WP author dosyasına başvurduğunda(site/author/username gibi) o yazarın sipariş ve destek formları dökülsün istiyoruz. Sadece o kişiye ait yazılar dökülecek istiyorsun. Eğer doğru anladıysam en azından bu formdan gelen verileri DB ye nası kaydetttiğini görmek lazım diye düşünüyorum. Yeni bir tablo mu açtın yoksa post olarak mı kaydediliyor onu bilmek gerek.


Yok hocam, soru sadece Yakup hocama sorulmuş soru değildir, bilgisi ve deneyimleri ölçüsünde herkesin yardımına açığım, teşekkürler.

yazara özel derken kendimi yanlış ifade ettim sanırım, düzeltiyorum.

Tüm yazarlara değil, sadece o postu gönderen kullanıcı görebilecek. yapmaya çalıştığım ve büyük ölçüde bitirdiğim sistemde zaten ziyaretçi girişi yok. Herkes üye (author) yani, bu kısıtlama işe yaramaz. Sadece yazıyı gönderen yazar ve yöneticiler görebilmeli.

Diğer sorum için de, tüm girişler kategoriye ve yazıya dayalı, yani DB ye herhangi bir ekleme yok. Destek kategorisine o kategorideki yazılar listelensin, sipariş kategorisine o kategorideki yazılar listelensin.

yakuphoca adlı üyeden alıntı

Öncelikle yazıları nasıl kaydediyorsunuz? Normal yazı olarak mı yoksa bir tabloya falan mı kaydediyorsunuz?
Mevcut düzenlediğiniz bir author.php dosyası varsa buraya ekleyebilir misiniz?


her şey yazı olarak giriliyor hocam. birkaç tane üyeler için yazı giriş formu oluşturdum site içinde, kullandıkları forma göre yazılar "sipariş" veya "destek" kategorisine düşüyor.

Görselle umarım daha iyi anlatırım.
Bu benim şu an kullandığım author.php




Gördüğünüz gibi yazarın tüm gönderdiği yazılar burada listeleniyor. ben yazarın sayfasında bu tablodan iki tane oluşturmak istiyorum. her tablo yazarın (benim tanımladığım kategoriye ait) yazılarını listelemeli yani.


normal wordpress döngü sistemi içerisinde query_post ile kategori seçimi yapabiliyoruz. bunun author.php ye uygulanmış şeklinden bahsediyorum.
 

 

Olmaya devlet cihanda bir nefes sıhhat gibi

yakuphoca yakuphoca WP Sever Kullanıcı
  • Üyelik 11.07.2013
  • Yaş/Cinsiyet 43 / E
  • Meslek Öğretmen
  • Konum Hatay
  • Ad Soyad ** **
  • Mesajlar 212
  • Beğeniler 2 / 51
  • Ticaret 2, (%100)

moryesil adlı üyeden alıntı


normal wordpress döngü sistemi içerisinde query_post ile kategori seçimi yapabiliyoruz. bunun author.php ye uygulanmış şeklinden bahsediyorum.


WordPress döngü yapısıyla ilgili bilginiz olduğunu varsayarak:
Öncelikle giriş yapmamış kullanıcıların author.php dosyasını açmaması için, is_user_logged_in() fonksiyonu ile kontrol yapabilirsiniz.
if ( is_user_logged_in() ) {
//Bir kullanıcı giriş yapmış
//Author.php içeriği buraya gelecek
} else {
echo 'Üye iseniz lütfen, giriş yapınız';
}
?>

Kullanıcı giriş yapmış ise, kullanıcının ID'sini elde etmek için wp_get_current_user() fonksiyonunu kullanacağız (http://codex.wordpress.org/Function_Reference/wp_get_current_user)

if ( is_user_logged_in() ) {
$uyebilgi = wp_get_current_user();
$uye_id = $uyebilgi->ID;
} else {
echo 'Üye iseniz lütfen, giriş yapınız';
}
?>

Üyenin ID'sini aldıktan sonra bunu kullanarak, yazarı bu üye olan yazıları get_posts() fonksiyonu (http://codex.wordpress.org/Template_Tags/get_posts) ile önce destek (ID'si 5 olsun) kategorisindeki yazıları çekelim.

if ( is_user_logged_in() ) {
$uyebilgi = wp_get_current_user();
$uye_id = $uyebilgi->ID;

$destekmesajlari = get_posts( 'cat=5&post_per_page=-1&author=' . $uye_id );
//Yazıların alınmasını özelleştirmek için parametrelerle ilgili bilgiye
//verdiğim adresten ulaşabilirsiniz. WP_Query ile aynı parametreleri kullanır.
if($destekmesajlari ){
//Üyenin destek mesajları varsa
//döngüye alıp, istediğiniz gibi gösterin. Bu size kalmış
echo '

Destek Mesajlarınız

';
echo '
    ';
    foreach ($destekmesajlari as $destekmesaji) {
    echo "
  • ".$destekmesaji->post_title."
  • ";
    }
    echo '
';
}else{
echo 'destek mesajınız yok';
}

} else {
echo 'Üye iseniz lütfen, giriş yapınız';
}
?>


Bu kodlara bir de sipariş kategorisindeki (ID'si 17 olsun) üyenin yazılarını çekip, gösterecek kodu ekleyelim.


if ( is_user_logged_in() ) {
$uyebilgi = wp_get_current_user();
$uye_id = $uyebilgi->ID;

$destekmesajlari = get_posts( 'cat=5&post_per_page=-1&author=' . $uye_id );
//Yazıların alınmasını özelleştirmek için parametrelerle ilgili bilgiye
//verdiğim adresten ulaşabilirsiniz. WP_Query ile aynı parametreleri kullanır.
if($destekmesajlari ){
//Üyenin destek mesajları varsa
//döngüye alıp, istediğiniz gibi gösterin. Bu size kalmış
echo '

Destek Mesajlarınız

';
echo '
    ';
    foreach ($destekmesajlari as $destekmesaji) {
    echo "
  • ".$destekmesaji->post_title."
  • ";
    }
    echo '
';
}else{
echo 'destek mesajınız yok';
}

$siparisler= get_posts( 'cat=17&post_per_page=-1&author=' . $uye_id );
//Yazıların alınmasını özelleştirmek için parametrelerle ilgili bilgiye
//verdiğim adresten ulaşabilirsiniz. WP_Query ile aynı parametreleri kullanır.
if($siparisler){
//Üyenin siparişleri varsa
//döngüye alıp, istediğiniz gibi gösterin. Bu size kalmış
echo '

Siparişleriniz

';
echo '
    ';
    foreach ($siparisler as $siparis) {
    echo "
  • ".$siparis->post_title."
  • ";
    }
    echo '
';
}else{
echo 'Siparişiniz yok.';
}

} else {
echo 'Üye iseniz lütfen, giriş yapınız';
}
?>


Verdiğim kodları kendi author.php dosyanıza göre düzenlemeniz gerekmektedir. Bu haliyle sadece yazıların başlıklarını liste olarak, biçimsiz bir şekilde gösterecektir. Yazıların sıralarını değiştirmek falan isterseniz get_posts fonksiyonunun sıralama parametrelerini inceleyip, uygulayın.
Yaptığımız işlemlerin mantığı şu,
Kullanıcı giriş yaptıysa
kullanıcının ID'sini al
Bu ID'ye ait destek ve sipariş kategorilerindeki yazıları al
Yazıları uygun şekilde yazdır.
Dolayısıyla giriş yapmamış biri, Giriş yapınız mesajıyla karşılacak
Giriş yapmış biri de kendi bilgilerini görecek.
olkunmustafa

kişi bu mesajı beğendi.

Bilişim Teknolojileri Hayatım
http://www.yakuphoca.com
wmaraci
Konuyu toplam 3 kişi okuyor. (0 kullanıcı ve 3 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al