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.