• 05-12-2008, 01:24:05
    #1
    Wordpress'te uzmanım diyen arkadaşlar, ücretli wp işi yapan arkadaşlar bir baksın bakalım.

    Şimdi bir çok kategori ve yazı var.
    Kategoriler şu şekilde:

    + Emre Aydın
    - Akorlar
    - Tablar
    - Şarkı Sözleri

    + Feridun Düzağaç
    - Akorlar
    - Tablar
    - Şarkı Sözleri

    Şimdi benim istediğim son 10 akoru listelemek...

    Ve muhtemelen uzman arkadaşlar biliyorlardır. Kategorileri çözmek için,
    wp_terms, wp_terms_relationship, wp_terms_taxonomy tablolarına bakmak gerekiyor.

    Peki yukarıdakinin nasıl yapabilirim... Ben şöyle düşündüm:
    önce, wp_terms_taxonomy tablosundan category olanları bulup id'leri alıcaz.
    daha sonra, wp_terms tablosundan % like % komutuyla içinde tab geçen kategorileri bulucaz.
    sonra, wp_terms_relationship tablosundan ilgili post id'lerini bulucaz.
    Daha sonra postları alıcaz, revision ve autosave olup olmadığını kontrol edicez.
    Olmayanları bulup, tarihe göre son 10 tanesini sıralayacağız.

    Ama tabii ki yukarıda anlattığım işlemleri gerçekleştirirsem, akor / tab / şarkı sözü için fazlaca sorgu olacak ve sitenin açılması uzun sürecek...

    Siz de bir kaç tavsiyede bulunursanız sevinirim

    Bu arada, Akorlar, Tablar gibi bir kategori oluşturup, yazıyı hem bu kategorilere hemde sanatçı kategorisindeki alt kategoriye kaydedip çekmek işin kolay hali. Yaptım çalıştırdım ama diğer türlü istediğim için, merak ettim burada yapabilecek var mı acaba
  • 05-12-2008, 11:32:22
    #2
    tam kategoriyi diyecektim bende

    ama eğer kategori kirliliği olmasın dersen etiketlede yapabilirsin (=

    diğer dediklerine php den o kadar anlamadığım için birşey diyemeyeceğim...
  • 05-12-2008, 13:42:18
    #3
    ben bir sorgu buldum gibi ama baya uzun ve sqli yoracak şekilde onun için bakalım wp-uzmanları ne diyecek
  • 05-12-2008, 13:46:54
    #4
    Üyeliği durduruldu
    SELECT posts.ID AS id, posts.post_title AS title FROM posts,terms,term_relationships,term_taxonomy WHERE posts.id = term_relationships.object_id AND term_relationships.term_taxonomy_id = term_taxonomy.term_taxonomy_id AND term_taxonomy.term_id = terms.term_id AND terms.name LIKE '%tablar%' AND term_taxonomy.taxonomy = 'category' AND posts.post_status != 'revision' AND posts.post_status != 'autosave'  ORDER BY posts.ID DESC
    sorguyu denemedim umarım çalışır

    revision ve autosave dediklerinin posts tablosundaki post_status ta tutulduğunu varsaydım. başka bir yerdeyse düzeltirsin. sıralamayı id ye göre yaptım. tarihe göre olursa sorun çıkabilir. çünkü unixtime olarak tutulmuyor db de.
  • 05-12-2008, 15:46:22
    #5
    Üyeliği durduruldu
    Alıntı
    <?php $recent = new WP_Query("cat=1,12&showposts=10"); while($recent->have_posts()) : $recent->the_post();?>
    <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <?php the_content(''); ?>

    <div class="hppostmeta">
    <p><?php the_time('F j, Y'); ?> | <?php comments_popup_link('Leave a Comment', '1 Comment', '% Comments'); ?></p>
    </div>

    <?php endwhile; ?>
    örneğini kullanabilirsiniz. 1 ve 12 numaralı kategorilerde bulunan son 10 yazıyı getirecektir.

    showposts=10&cat=-1 şeklinde kullanınca da kategori 1 hariç diğer kategorilerden yazıları getirir.

    kaynaklar: 1 - 2 - 3
  • 05-12-2008, 16:27:24
    #6
    @tyler_durden, sizce mantıklı mı bu çözüm. avrupa'yı geçtim sadece türkiye genelinde en az 200 tane sanatçı vardır, her defasında buraya onların id'sini manuel olarak mı ekleyeyim ?
  • 05-12-2008, 16:48:20
    #7
    Üyeliği durduruldu
    wp ile elden gelen bu gibi gözüküyor. manuel eklemek kategori başına 30 saniyenizi alır. bana göre mantıklı olansa, 200 tane sanatçı hakkında bu kadar bilgi içeren bir site için, wp kullanmak yerine script yazmaktır. yoksa belirttiğiniz gibi bir sorgu mutlaka yazılıyordur(ben yazamam malesef) ama hit 3k oldu mu, cpu uçtu ne yapacağım diye sorular da başlıyor.

    wp çok iyi bir script ama büyük siteler için ideal bir script değil.
  • 05-12-2008, 16:54:22
    #8
    @Tyler, sağol yine de

    @MC_delta, hiç bi sonuç dönmedi nedense
  • 05-12-2008, 16:57:23
    #9
    MC_delta_T 'nn verdiği kodu denedinmi?

    Edit:Geç kalmışım...