Kategoriler
Anketler Webmaster yardım Wordpress

WordPress: site admini ve konu yazari yorumlarini renklendirmek!

[poll id=”8″]

Bazi arkadaslarin isine yarayabilecegini dusundugum, wordpress deki en sevdigim ozelliklerden birisidir bu. Yorumlari listelerken wordpress bu listelenen yorumlara ayri ayri class yerlestirir. Boylece her yorumun farkli renklendirmesine olanak verir. Bizim yapmamiz gereken tek sey bu class lari css yani stil dosyamizda belirtmek.

Site admininin yazdigi yorumlari renklendirmek icin asagidaki css class ini kullanacaksiniz:

comment-author-admin

Konu yazarinin konuya yazdigi yorumlari renklendirmek icin asagidaki css class ini kullanacaksiniz:

bypostauthor

Bunlar haricinde bir kac css class koduda ekler her yoruma, bunlar isinize yaramayabilir, yada daha prof anlamda calismalar icin gerekebilir, bunlara burda yer vermiyorum simdilik. Ilerde bu konuda da detayli bir yazi yazacagim.

yukaridaki class kodlarini yorumlarin listelenme sekline gore eklemeniz gerekli. Ornegin standart wordpress temasinda stil dosyasina asagidakini eklemeniz yeterli olabilir:

.comment-author-admin {
background: #ccc;
}
.bypostauthor {
background: #f00;
}

Yukarida renkleri rast gele sectim arkadaslar, siz kendinize gore arkaplan rengini degisebilirsiniz. Bunun yaninda farkli duzenlemeleride css kismindan yapabilirsiniz.

Unutmamaniz gereken bazi temalarda yorumlar, ol, li v.s gibi taglar yardimiyla listelenmekte boyle oldugunda yukaridaki css taglarini li elementine ait oldugunu belirterek eklemeniz gerek. ornek asagidaki gibi:

li.comment-author-admin {
background: #ccc;
}
li.bypostauthor {
background: #f00;
}

Yada

ol.commentlist li.comment-author-admin {
background: #ccc;
}
ol.commentlist li.bypostauthor {
background: #f00;
}

Yada

ul.commentlist li.comment-author-admin {
background: #ccc;
}
ul.commentlist li.bypostauthor {
background: #f00;
}

Bunlar ornektir, kendinize gore duzenlemeniz gerekli. Bunlari denediginizde calismaz ise konu altinda detaylica sitenizi belirtin, incelemeden sonra gerekenleri yazarim. Ancak ilk kisimdaki ornegin calismasi yuksek derecede ihtimaldir :)

Kategoriler
Php ve mysql Webmaster yardım Wordpress

WordPress degisikliklerinde eski yorumlarinizi yeni siteye ekleme!

Arkadaslar bazi durumlarda kullandiginiz wordpress i degistirmek istersiniz. Bu nhasil olur ? iki farkli domaininiz vardir, birinde kisisel digerinde de farkli alanda yazilarinizi barindirirsiniz. Tarihin birinde de artik bir tanesini birakip tek siteyle devam etmek istediginizi anlarsiniz. bu durumda yazilarinizi yeni siteye manuel olarak eklersiniz ancak yorumlar cok fazlaysa ve manuel sql sorgusu ile eklemek cok zahmetli geleceginden bu yazimda 2 saniyede bunu nasil yapacaginizi anlatacagim.

Yapacagimiz islem hazirlik asamasi 5 dk, uygulamaya alma asamasi da1 dk olarak 2 ayri kisimda olacaktir. bunlardan ilki Eski db de bulunan yorumlar tablosunu farkli bir on ek ile yeni databaseye eklemek, sql sorgusu icinde php dosyasini hazirlamak olacaktir. 2 kisimda ise bunu calistirip kontrol etmek kalacaktir geriye..

Burda unutmamaniz gereken konu, devap olarak eklenen yorumlar eskisi gibi cevap seklinde degil normal sekilde gorunecektir. cunku yeni db ye eski yorumlari eklerken otomatik yeni ID almasini sagliyoruz, burada da ID lerfkli olacagindan cevap ozelligini yorumlari cektiginiz konu icin yok saymaniz gerek :)

Baslamadan once iki databaseyide mutlaka yedek almayi unutmayin.

Phpmyadminden eski websitenizin databasesini acin ve sadece bu tabloyu bilgisayariniza indirin: comments (eger on ek kullanmis iseniz onu indirin, default wp_comments seklinde de olabiliyor)

* Inen dosyayi acip icerisindeki comments tarisinin onundeki takiyi yada komple ismi duzenleyin.

* Yeni DBnizin oldugu tabloya yukleyin.

* Ardindan asagidaki php sorgusunu yeni wordpress’inizin root dizininde bir php dosyasina ekleyin, kendinize gore duzenleyin.

< ?php

include_once "mysql/ez_sql_core.php";
include_once "mysql/ez_sql_mysql.php";

$kullanici="DB-kullanici-adin";
$parola="sifren";
$DBCIK="DB-adin";
$sunucu="localhost";

$db = new ezSQL_mysql($kullanici,$parola,$DBCIK,$sunucu);
$db->query("SET NAMES utf8");

$eskisitekonuyorumid = "202";
$yenisitekonuyorumid = "1459";

$sonuclar = $db->get_results("SELECT * FROM ESKI_comments where comment_post_ID='$eskisitekonuyorumid'");

foreach ( $sonuclar as $sonuc )
{

$comment_post_ID = $yenisitekonuyorumid;
$comment_author = $sonuc->comment_author;
$comment_author_email = $sonuc->comment_author_email;
$comment_author_url = $sonuc->comment_author_url;
$comment_date = $sonuc->comment_date;
$comment_content = mysql_real_escape_string(stripslashes($sonuc->comment_content));
$comment_approved = $sonuc->comment_approved;
$comment_agent = $sonuc->comment_agent;
$comment_type = $sonuc->comment_type;
$user_id = $sonuc->user_id;

$query = $db->query("INSERT INTO wp_comments(
comment_post_ID,
comment_author,
comment_author_email,
comment_author_url,
comment_date,
comment_content,
comment_approved,
comment_agent,
comment_type,
user_id
) VALUES (
'$comment_post_ID',
'$comment_author',
'$comment_author_email',
'$comment_author_url',
'$comment_date',
'$comment_content',
'$comment_approved',
'$comment_agent',
'$comment_type',
'$user_id'
)");

if($query) {
echo "basarili oldu - ".$sonuc->comment_ID." = ".$sonuc->comment_content."

"; }else{ echo "basarisiz oldu - ".$sonuc->comment_ID." = ".$sonuc->comment_content."

"; } } ?>

Sirasiyla duzeltmeniz gereken yerleri yazacagim:
1: $eskisitekonuyorumid = Yorumlarini almak istediginiz konunun eski sitedeki ID si
2: $yenisitekonuyorumid = Yorumlari eklemek istediginiz konunun yeni sitedeki ID si
3: ESKI_comments = Eski yorumlarin oldugu ve yeni konuya ekleyeceginiz yorumlarin bulundugu tablo ismi (indirdigimiz)
4: wp_comments = Yorumlarin eklenecegi yeni tablo ismimiz.

Sistemde EZsQL ile calistigimdan buradaki ezsql dosyalarini indirip php dosyasinin oldugu yere yukleyin (klasorle beraber)

Dosyalarda yerli yerine yuklendikten sonra kodlarin bulundugu php dosyasini webtarayicinizda acin ve basarili yada basarisiz sonuclari takip edin. Genelde butun sonuclar basarili sekilde listeleniz. Ancak sorun varsa uyari verefcektir. Bu durumda konu altina yorum duserseniz sorunu anlayip yardimci olmaya calisirim..

Yardimci olmasi umidiyle, basarilar..

Kategoriler
Webmaster yardım

WordPress sitenizde yorumları ayrı sayfaya alma!

Neden ayri sayfa ? en onemli nedeni sanirim gittikce artan kullanici sayinizin kullandiginiz sunucuda veya hostda artik katlanamaz sorunlara neden olmasidir diyebilirim. Cok fazla yoruma sahip sitelerde sitenize girenlerin cogu bu yorum kismiyla alakasi olmayan kisilerdir. Yazi okurken yada actiginiz konudan bir sey indireceklerinde yorumlarin bos yere listelenmesi, sayfalanmasi v.s hem sunucuyu yorar hemde acilisi yavaslatacagi icin en iyi yol, yorumlari ayri sayfaya almak ve yorumu kullanacak kisilerin bu sayfaya yonlendirilmesini saglamak olacaktir. Bunu yaparken 2 madde de yararini goreceginiz seyler olacak. Bunlardan biri sunucuya yuk bindirimini gereksiz yorumlarin listelenmesi ve sayfalanmasini kaldirarak azaltmis olacagiz. Hemde ayri sayfadaki yorum sayfasinin acilisinda yazi v.s gibi sorgular olmayacagi icin hiz kazandiracaktir.

Ben genelde cok sorgulu sitelerimde ve sunucuya yuku bindiren kisimlarin azaltilmasinda en onem verdigim yer yorumlardir. Bu sebeple yorumlarin ayri sayfada kullandigim bir kac siteyi ornek vermek istiyorum:

Site 1: Haber sistemi
Yorum sayfasi: http://www.kuaza.info/b/kuaza_yorum.php?id=1805
Orjinal konu: http://www.kuaza.info/b/haberler/buyukelci-dudagimdan-opmek-istedi-1805.html

Site 2: Haber / Portal (ucretsiz paylastim, incelemek isteyen buradan indirebilir)
Yorum sayfasi: http://www.kuaza.info/a/kuaza_yorum.php?id=1852
Orjinal konu: http://www.kuaza.info/a/15-yasinda-iki-sevgilinin-garip-intihari-1852.html

Ornekleri gordugunuz gibi, bence yuksek hitli sitelerde, hostunuzun veya vps, sunucu gibi sistemlerin yukunu hafifletmek isterseniz, optimasyona baslamaniz gereken 2. veya 3. kismi yorumlardir :)

Fazla uzatmadan direk nasil yapilacagi konusunda yazmaya baslayalim..

Sitenizin root dizininde, yorumlarin listelenecegi bir sayfa olusturalim. bu sayfanin ismi: Yorumlar.php olsun. Icerisine asagida verecegim kodlari ekleyip kaydedin. (yildizlari silin)

<*?*php

include(‘wp-config.php’); $yaziid=(int)$_GET[‘id’]; get_header();

query_posts(‘p=’.$yaziid.”); global $more; $more = 0; while (have_posts()) : the_post();

comments_template();

endwhile;

get_footer();

*?*>

Bu kodlardaki mantigi aciklamak istiyorum: Get metodu ile adres satirindan yazi ID sini aliyoruz ve sayfadaki loop kisimda bu ID ye ait loop Olusturuyoruz. Bu loop’un icerisine de single.phpde goreceginiz yorumlari gosterme kodunu yerlestirdigimizde yapacagimiz islemlerin zor kisimlarini gecmis oluyoruz ve yorumlar listeleniyor.

Buraya kadar yazdiklarimi yaptiginizda ornek yorumlari gosterme kodunuz bu sekilde olacak:
http://www.SITENIZ.com/yorumlar.php?id=1852

id=1852 kismi yorumlari gosterecegimiz ayda yorum yaptiracagimiz yazi ID si oluyor.

Simdi sira yorum yapilildiktan sonra yonlenecek sayfayi duzenleyecegiz. Boylece yorum yapildiktan sonra kullanici ayni sekilde yorum sayfasina ve kendi yorumuna geri donecek.

aciyoruz: wp-comments-post.php (ana dizindedir)

en sonlarda asagidaki gibi bir kod olmasi lazim buluyoruz:

wp_redirect($location);

ve yukaridaki kodu asagidaki ile degistiriyoruz:

wp_redirect(‘http://www.SITENIZ.com/yorumlar.php?id=’.$comment_post_ID.’#comment-‘ . $comment_id);

Degistirdigimiz kod daki site adresini kendimizinki ile degistiriyoruz ve kaydediyoruz. Artik yorum yapildiktan sorna direk yorum kismina donus yapacak kullanicilar. Eger yaziya yonlensin istiyorsaniz yorumdan sonra bu kismi hic duzenlemeden gecin :)

En zor kisimlari gectik, geriye tek bir yapilacak konu kaldi, oda yazi sayfasindan yorum yapilacak kisma link vermek.

Single.php dosyasini acin temanizin.
Asagidaki kodu duzenleyerek single.php dosyasinda Loop kismin icinde bir yere link olarak ekleyin:

http://www.SITENIZ.com/yorumlar.php?id=<*?*php echo $post->ID; ?*>

Yildizlari kaldirin..


Ve islemler bitmistir. Yorumlar icin kullanilan link yapisini url rewrite yontemi ile seoya uygun sekilde duzenleyebilirsiniz.

Bu haliyle kullandiginizda yorumlarin listelendigi sayfa sekilsiz gorunebilir, cunku sadece header ve footer sayfalarini include ederek aldik. Siz single.php sayfasi gibi yorumlar.php dosyasinada sekil vermeniz gerek, html kullanmaniz gerek. Bu konuda yapilmis ve gorerek uygulama yapmak isteyen arkadaslar buradaki ucretsiz dagittigim temayi indirerek inceleyebilirler.

Atladigim yada yanlis yazdigim bir bolum varsa yorum kismini kullanarak bildirebilirsiniz. Sevgi ve ask yorumlarinizida bekliyorum :)