Öncelikle functions.php'deki kodun yanlış. Şu şekilde açıklayayım;
Before Title'ın karşısında başlıktan önce gelmesi gereken html kodu:
<h2>
After Title'ın karşısına başlıktan sonra gelmesi gereken html kodu:
</h2><ul><li>
Before Widget'ın karşısına bileşenden önce gelmesi gereken html kodu:
<li>
After Widget'ın karşısına da bileşenden sonra gelmesi gereken html kodu:
</ul></li>
Hepsini birleştirirsek şu şekilde olmalı:
<?php
if (function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Yan Menu',
'before_widget' => '<li>',
'before_title' => '<h2>',
'after_title' => '</h2><ul>',
'after_widget' => '</ul></li>',
));
?>Sidebar.php dosyasında zaten id ve class tanımladığın için onları tekrar tanımlamana gerek yok, bu şekilde yazdığın zaman sorun olmaması gerekiyor.
Eğer hala sorun yaşıyorsan
wordpress dinamik sidebar yapımı isimli yazıma göz atabilirsin.