• 05-09-2016, 01:47:35
    #1
    Merhaba, wordpress sayfalarıyla çalışırken ufak bir noktada takıldım şöyle kii

    3 adet wordpress sayfa mevcut bunlar

    - Edirne (Üst Sayfa)
    -- Keşan (Alt Sayfa)
    -- İpsala (Alt Sayfa)

    şeklinde gidiyor. Bunları Edirne sayfası içerisinde bu şekilde sorunsuz olarak gösterebiliyorum. Fakat Keşan sayfasına girdiğimde İpsala kayboluyor. İpsala sayfasına girdiğimde keşan kayboluyor bunlar birbiri ile aslında edirne sayfası altında olarak bağlı olmalarına rağmen sanırım birbirlerinin alt sayfası olmadıkları için böyle bir sorun yaşatıyorlar.



    Kullandığım kodlar şu şekilde

      <?php
      // If the post has a parent.
    if( $post->post_parent ) {
        // Collect ancestor pages.
        $relations = get_post_ancestors( $post->ID );
     
        // Get child pages.
        $result = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM wp_posts WHERE post_parent = %s AND post_type = %s", $post->ID, 'page' ) );
        if ( $result ) {
            foreach ( $result as $page ) {
                array_push( $relations, $page->ID );
            }
        }
     
        // Add current post to pages.
        array_push( $relations, $post->ID );
     
        // Get comma delimited list of children and parents and self.
        $relations_string = implode( ",",$relations );
     
        // Use include to list only the collected pages.
        $sidelinks = wp_list_pages( array(
            'title_li' => '',
            'echo'     => 0,
            'include'  => $relations_string
        ) );
    } else {
        // Display only main level and children.
        $sidelinks = wp_list_pages( array(
            'title_li' => '',
            'echo'     => 1,
            'depth'    => 1,
            'child_of' => $post->ID
        ) );
    }
     
    if ( $sidelinks ) : ?>
      
        <ul>
            <?php
            // Links in <li> tags.
            echo $sidelinks;
            ?>
        </ul>         
    <?php endif; ?>
    Acaba bunları bahsettiğim şekilde nasıl listelerim?
  • 05-09-2016, 04:14:59
    #2
    $sidelinks = wp_list_pages( array(
            'title_li' => '',
            'echo'     => 1,
            'depth'    => 1,
            'child_of' => $post->ID
        ) );
    'depth' => 1 yaparsan sadece üst seviye sayfaları gösterir.
    -1 tüm alt sayfaları da dahil eder,
    0 tüm sayfaları gösterir,
    oraya 3 yazarsanız 3. seviye alt sayfalara kadar gösterir. 3-5 size kalmış.

    Yalnız bu hiç sağlıklı bir kod değil. Veritabanını kurcalamaya gerek yok. O an görüntülenen sayfa o listede gösterilmek istenmiyorsa ;

    'exclude' => $page->ID;

    Sadece o an görüntülenen sayfaya ait alt sayfalar görüntülenmek isteniyorsa;

    'child_of' => $page->ID;

    eklense yeterli olur.

    https://developer.wordpress.org/refe...wp_list_pages/
  • 05-09-2016, 14:16:37
    #3
    mehmetarik adlı üyeden alıntı: mesajı görüntüle
    $sidelinks = wp_list_pages( array(
            'title_li' => '',
            'echo'     => 1,
            'depth'    => 1,
            'child_of' => $post->ID
        ) );
    'depth' => 1 yaparsan sadece üst seviye sayfaları gösterir.
    -1 tüm alt sayfaları da dahil eder,
    0 tüm sayfaları gösterir,
    oraya 3 yazarsanız 3. seviye alt sayfalara kadar gösterir. 3-5 size kalmış.

    Yalnız bu hiç sağlıklı bir kod değil. Veritabanını kurcalamaya gerek yok. O an görüntülenen sayfa o listede gösterilmek istenmiyorsa ;

    'exclude' => $page->ID;

    Sadece o an görüntülenen sayfaya ait alt sayfalar görüntülenmek isteniyorsa;

    'child_of' => $page->ID;

    eklense yeterli olur.

    https://developer.wordpress.org/refe...wp_list_pages/
    Teşekkür ederim ilginiz için hocam fakat bu şekilde denediğimde de bahsettiğim gibi bir görünüm alamıyorum. İpsala ve Keşan birbirinin alt sayfası olmadığı için sanıyorum bu kodlar işe yaramıyor.
  • 06-09-2016, 16:19:45
    #4
    Orada 3 tane koşul var. Veritabanından açık olan sayfanın bağlı olduğu üst sayfanın ID'sini çek. Ondan sonra bu ID numarasına sahip sayfayıda link listesine ekle. Yoksa bu ID numarasına sahip sayfanın alt sayfalarını listele. Bu da olmazsa ul şeklinde yine sistemi yenile.
    Depth her iki sorguyada eklenmeli. Yada verdiğim linktekine göre yeni bir query oluşturmalı.
    https://developer.wordpress.org/refe...wp_list_pages/
    Burada birçok örneği de var.