• 09-09-2010, 02:29:31
    #1
    Üyeliği durduruldu
    Merhaba.

    Temamı valid yapmaya çalışıyorum. Bu kısımda takıldım. Arama formu da ul etiketinin içinde ve bunu hata olarak kabul ediyor. Kod aşağıdaki şekilde.

    <div class="sayfalar">
     <ul>
       <li <?php if ( is_front_page() ) echo ' class="current_page_item"'; ?>><a href="<?php echo get_option('home'); ?>/"><span>Anasayfa</span></a></li>
    <?php $pages = wp_list_pages('sort_column=menu_order&title_li=&echo=0');
    $pages = preg_replace('%<a ([^>]+)>%U','<a $1><span>', $pages);
    $pages = str_replace('</a>','</span></a>', $pages);
    echo $pages; ?>
    
    <div class="arama">
      <form method="get" action="<?php bloginfo('url'); ?>/">
       <fieldset>
       <input type="text" value="<?php the_search_query(); ?>" name="s" /><button type="submit"></button>
       </fieldset>
      </form>
    </div>
    
    </ul>
      
    </div>
    Bundan dolayı verdiği hatalar ise şunlar:
     Line 70, Column 19: document type does not allow element "div" here; assuming missing "li" start-tag
    <div class="arama">
     Line 78, Column 5: end tag for "li" omitted, but OMITTAG NO was specified
    </ul>
    You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".
    Bunu nasıl çözebiliriz?
  • 09-09-2010, 08:06:20
    #2
    ul içinde li etiketini kapatmış ul dan çıkmadan kodlara devam etmişsiniz.

    Kendi mantığıma göre düzeltip, yeniden hizalama yaptım.

    <div class="sayfalar">
        <ul>
            <li <?php if ( is_front_page() ) echo ' class="current_page_item"'; ?>>
                <a href="<?php echo get_option('home'); ?>/"><span>Anasayfa</span></a>
            </li>
        </ul>
    
        <?php
        $pages = wp_list_pages('sort_column=menu_order&title_li=&echo=0');
        $pages = preg_replace('%<a ([^>]+)>%U','<a $1><span>', $pages);
        $pages = str_replace('</a>','</span></a>', $pages);
        echo $pages;
        ?>
    
        <div class="arama">
            <form method="get" action="<?php bloginfo('url'); ?>/">
                <fieldset>
                    <input type="text" value="<?php the_search_query(); ?>" name="s" /><button type="submit"></button>
                </fieldset>
            </form>
        </div>
    </div>
    Sadece hatayı göstermek için düzenledim, uygulama üzerinde kayma olabilir...

    wp_list_pages() fonksiyonun nasıl bir çıktı verdiğini bilmiyorum, kodları kaynak koddan kontrol etmek daha sağlıklı, wp_list_pages() fonsiyonu ul>li şeklinde çıktı veriyorsa kodlar doğru sadece li çıktısı veriyorsa </ul> içine alınabilir.
  • 09-09-2010, 12:34:43
    #3
    Üyeliği durduruldu
    Evet, bu şekilde kayma oluyor.
  • 10-09-2010, 13:27:03
    #4
    php bilgim neredeyse yok ama mantıksal olarak, frontpage ise class'ı şu şekilde yap demişsin.. ya frontpage değilse?
    <?php if ( is_front_page() ) echo ' class="current_page_item"'; ?>

    bu döngüyü li'den çıkar, önüne koymayı dene.

    css olarak sorun:
    <li <?php if ( is_front_page() ) echo ' class="current_page_item"'; ?>>
    satırının sonundaki > gibi görünüyor.

    bu belki fikir verir.. yine de ustalar fikir verirse daha iyi olur..

    <?php if ( is_front_page() ) echo '<li class="current_page_item"> '; ?>
    gibi.. dediğim gibi php bilgim pek yok..