Я разрабатываю собственный шаблон WordPress для некоторых друзей и хочу горизонтальное меню.Все было бы хорошо, за исключением того, что wp_page_menu выводит элементы списка все в одну строку, которая (после МНОГО! Царапин на голове), кажется, нарушает форматирование и удаляет все пространство между элементами.Например, следующие выходы 1, 2 и 3 разнесены, а затем 456 все вместе.(Протестировано в Safari, Firefox и Chrome, все на Mac.)
<style>
.menu {
text-align: justify;
width: 700px;
margin: 10px;
}
.menu * {
display: inline;
}
.menu span {
display: inline-block;
position: relative;
width: 100%;
height: 0;
}
</style>
<div class="menu">
<ul>
<li><a href="http://localhost/">1</a></li>
<li><a href="http://localhost/">2</a></li>
<li><a href="http://localhost/">3</a></li>
<li><a href="http://localhost/">4</a></li><li><a href="http://localhost/">5</a></li><li><a href="http://localhost/">6</a></li>
</ul>
<span></span>
</div>
У меня уже есть пользовательская функция, редактирующая вывод из wp_page_menu, чтобы добавить диапазон после ul, так что я думаю, самая простая вещьЧтобы сделать это, нужно расширить эту функцию, чтобы добавить разрывы строк, но если у кого-то есть другие идеи или вы можете сказать мне, почему это происходит (особенно это!), это было бы здорово.
РЕДАКТИРОВАТЬ:
Исправили это сейчас, добавив функцию, которая вставляет пробел в html (код ниже, если кому-то интересно сейчас или кто-то сталкивался с этим в будущем).Кажется, это было все, что было необходимо!Было бы еще интересно узнать, может ли кто-нибудь сказать мне, зачем это нужно.
// Add a space after the </li> in wp_page_menu to allow justification of the menu
function add_break($break) {
return preg_replace('/<\/li>/', '</li> ', $break, -1);
}
add_filter('wp_page_menu','add_break');