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.