• 24-05-2017, 21:58:29
    #1
    Selamlar,

    Amacım yazıya girildiği zaman sidebar kısmında yazının ait olduğu kategorideki yazıları listeletmek.

    Mantıken yazının kat id sini alıp hazır wp kodu ile çekilir fakat ben yazının ait olduğu kategori idsini bir türlü çektiremedim. Yardımcı olabillecek varmıdır ?

    Sorunu çözdüm

    Benzer yazılar hazır kodunu kullanarak sorunumu hallettim. Kod içerisinde bulunduğumuz yazınında sidebar da gözükmesi için açıklama satırı yazılan satırı silmeniz yeterli.

    <?php
    $categories = get_the_category($post->ID);
    if ($categories) {
       $category_ids = array();
       foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
     
       $args=array(
          'category__in' => $category_ids,
          'post__not_in' => array($post->ID), // bu satırı silerseniz listelediğiniz kısımda bulunduğunuz yazı da gözükecektir.
          'showposts'=>5, // Gösterilecek benzer yazı sayısı
          'caller_get_posts'=>1
       );
             
            $my_query = new wp_query($args);
       if( $my_query->have_posts() ) {
          echo '<h3>Benzer yazılar</h3><ul>';
          while ($my_query->have_posts()) {
             $my_query->the_post();
          ?>
             <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
          <?php
          }
          echo '</ul>';
       }
    wp_reset_query();
    }
    ?>
  • 24-05-2017, 22:23:12
    #2
    Kodlamayla ugrasmak istemiyorsaniz su eklentiyi kullanabilirsiniz: https://wordpress.org/plugins/conditional-widgets/
    https://wordpress.org/plugins/custom-sidebars/

    Eklenti kullanmak istemiyorsaniz; her kategori icin sidebar olusturup, single.php'deki get_sidebar kismini conditional fonksiyonu kullanarak ayri ayri cagirmalisiniz. (https://codex.wordpress.org/Function_Reference/has_term)
  • 24-05-2017, 22:22:15
    #3
    Selamlar
    $cats = get_the_category($post->ID);
    bu kod ile yazının kategorilerini çekebilirsiniz daha sonra foreach ile listeleyebilirsiniz.
  • 24-05-2017, 22:34:17
    #4
    Beyin yakmanıza gerek yok

    Habermatik temasında kullandığımız bir kodu paylaşıyorum kendi tasarımınıza entegre edebilirsiniz.

      <?php
    $categories = get_the_category($post->ID);
    if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
    
    $args=array(
    'category__in' => $category_ids,
    'post__not_in' => array($post->ID),
    'showposts'=>6, // hm v2 Gösterilecek benzer yazı sayısı
    'caller_get_posts'=>1
    );
    
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
    
    while ($my_query->have_posts()) {
    $my_query->the_post();
    ?>
    <li>
    içerik...
    </li>
    
    <?php
    } }
    wp_reset_query();
    }
    ?>
  • 24-05-2017, 22:35:24
    #5
    truser adlı üyeden alıntı: mesajı görüntüle
    Selamlar
    $cats = get_the_category($post->ID);
    bu kod ile yazının kategorilerini çekebilirsiniz daha sonra foreach ile listeleyebilirsiniz.
    d3nnis adlı üyeden alıntı: mesajı görüntüle
    Kodlamayla ugrasmak istemiyorsaniz su eklentiyi kullanabilirsiniz: https://wordpress.org/plugins/conditional-widgets/
    https://wordpress.org/plugins/custom-sidebars/

    Eklenti kullanmak istemiyorsaniz; her kategori icin sidebar olusturup, single.php'deki get_sidebar kismini conditional fonksiyonu kullanarak ayri ayri cagirmalisiniz. (https://codex.wordpress.org/Function_Reference/has_term)
    Cevaplarınız için teşekkür ederim.

    Benzer yazılar hazır kodları ile birlikte istediğimi gerçekleştirdim. Kod da yaptığım değişiklik ise içinde olduğumuz yazının da listelemeye dahil edilmesi oldu.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:35:24 -->-> Daha önceki mesaj 22:34:24 --

    wpmatik adlı üyeden alıntı: mesajı görüntüle
    Beyin yakmanıza gerek yok

    Habermatik temasında kullandığımız bir kodu paylaşıyorum kendi tasarımınıza entegre edebilirsiniz.

      <?php
    $categories = get_the_category($post->ID);
    if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
    
    $args=array(
    'category__in' => $category_ids,
    'post__not_in' => array($post->ID),
    'showposts'=>6, // hm v2 Gösterilecek benzer yazı sayısı
    'caller_get_posts'=>1
    );
    
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
    
    while ($my_query->have_posts()) {
    $my_query->the_post();
    ?>
    <li>
    içerik...
    </li>
    
    <?php
    } }
    wp_reset_query();
    }
    ?>
    Teşekkürler aynı kodu başka bir yerden bularak hallettim.