Yalnız arkadaş eski yazılarına da eklemek istiyor, sizin eklentiniz sadece yeni yazılan yazılarda yayınla denildiğinde ayarlara bağlı olarak ekleme yapıyor.
Ayrıca eklentide güvenlik önlemi alınmamış, bu eklenti aktifken, biri size özel bir linki tıklatarak istediği etiketleri siteye ekletebilir ya da zararlı bir kodu veritabanına yazdırabilir. Eklenti yazarken wpnonce denilen yöntemi kullanarak, bu sorunu aşabilirsiniz.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:36:56 -->-> Daha önceki mesaj 16:48:30 --
Sizin için oturup, aşağıdaki kodu oluşturdum. Ne yazık ki eklentiye dönüştürecek zamanım olmadı. Yazılanları lütfen iyi okuyarak uygulayın, ne yaptığınızı bilmiyorsanız, bilenlerden yardım alın.
Yapmanız gerekenler aşağıdaki kodu temanızın functions.php dosyasına uygun şekilde eklemek, örneğin dosyanın en başındaki <?php kodundan hemen sonraya ekleyebilirsiniz. Ardından kod içerisindeki $etiket ile başlayan satırlardaki oyun oyna, oyunu vs. gibi yerleri kendinize göre değiştirmek. Ben verdiğiniz örnekleri yazdım. Eğer daha fazlasını eklemek isterseniz (ki önermem) o satırları alt alta çoğaltabilirsiniz.
Ancak kodu eklemeden önce eğer yazı ekleyip, yayınlayan bot ve benzeri eklentilerinizi pasif hale getirin. Çünkü kod, dosyaya eklendikten sonra ilk yazınızı yayınladığınızda (kaydettiğinizde değil Yayınla düğmesine tıkladığınızda) kod içerisindeki etiketleri önceden yayınlanmış tüm yazılara ekleyecektir. Yayınla dedikten sonra yazı sayınıza göre işlem uzun sürebilir. Sorunsuz bir şekilde yazı yayınlanırsa, yazılarınızın hepsine bahsettiğimiz etiketler eklenmiş olacaktır. Tüm yazılar sayfasına gidip, yazı listesindeki etiketler sütununa bakın. Sorun yoksa kodu functions.php dosyasından silin. Eğer bu haliyle kalırsa her yazı yayınladığınızda eski yazılara yeniden etiketleri eklemeye çalışacaktır, her ne kadar ekleyemeyecek olsa da yazılarınızı yayınlamanız uzun sürebilir.
function yakuphoca_eskiyazilara_etiket_ekle($yazi_ID){
if ( !current_user_can( 'edit_post', $post->ID ))
return $post->ID;
$yazilar = get_posts('posts_per_page=-1');
foreach( $yazilar as $yazi ) {
$etiket = array();
$etiket[] = $yazi->post_title . ' oyunu';
$etiket[] = $yazi->post_title . ' oyunları';
$etiket[] = $yazi->post_title . ' oyna';
$etiket[] = $yazi->post_title . ' oyununu oyna';
wp_set_post_tags($yazi->ID, $etiket, true);
}
}
add_action('publish_post', 'yakuphoca_eskiyazilara_etiket_ekle');Eğer belli kategoriler üzerinde işlem yapmak isterseniz de
http://codex.wordpress.org/Template_Tags/get_posts adresindeki parametreleri inceleyip, get_posts fonksiyonuna uygun şekilde ekleyin.
Eğer ne yaptığınızı bilmiyorsanız, bilen birinden yardım alın, localde yaptığım denemelerde bir sorun oluşmasa da, başınıza geleceklerden sorumlu değilim.