Struktura menu problemik
-
Jest to moje pierwsze pytanie na tym forum, dlatego na wstępnie chciałbym się ze wszystkimi serdecznie przywitać 🙂
Dziś zacząłem zabawę z wordpressem i mam takie oto pytanie:
Tworzę pierwszy szablon i napotkałem pewien problem, nie wiem jak dodać separator między odnośnikami w menu:struktura miałby wyglądać następująco:
<li><a href="#">O NAS</a><div class="border"></div></li>
chodzi o wrzucenie w strukturę linku diva
rozumiem że powinienem dopisać coś do tej reguły:
<?php wp_list_pages('title_li='); ?>
ale kompletnie nie wiem jak ma to wyglądać.. kombinowałem i niestety nie udaje mi się tego problemu pokonać. Mam nadzieję, że pomożecie mi rozwiązać ten problem
-
jak dodać separator między odnośnikami w menu:
Zamiast:
<?php wp_list_pages(’title_li=’); ?>
użyj
<?php wp_nav_menu( $args ); ?>
Daje większe korzyści a i tak będziesz chciał później ustawiać to menu
ew. dodawać jakieś elementy etc.W funkcji użyj parametru ($args):
$before
lub$after
– dzięki temu przed lub za elementem menu pojawi się dowoly znak, napis czy co tam użyjesz np. jakąś encje: | |Innym sposoben „odseparowania elementów w menu jest ich stylizacja – starndardowo – wegług arkusza stylów.
Dla elementów listy wystarczy, że dodasz
ul li {border-right: 1px solid red;}
lub jQuery $(„a”).after(„<div />”).addClass(„border”);
Innym sposoben „odseparowania elementów w menu jest ich stylizacja – starndardowo – wegług arkusza stylów.
Dla elementów listy wystarczy, że dodasz
border-right: 1px solid red;
div który ustawiłem obok linka ma właśnie atrybut border-right. Nie mogłem go zastosować bezpośrednio na linku ponieważ jest on w dość wysokim bloku, wyższym niż separator, dlatego wykorzystałem diva z obramowaniem z prawej…
Może jest jednak możliwość dopisanie odniesienia do diva w:
<?php wp_list_pages('title_li='); ?>
Nie chciałbym jakoś bardzo głęboko ingerować w kod php strony.. w tym nie jestem póki co zbyt mocny 🙂
oczywiście jeżeli powiecie że nie mam innego wyjścia to oczywiście spróbuję…na wp_list_pages to już chyba tylko zostaje walker http://codex.wordpress.org/Function_Reference/Walker_Class
ale skoro to tylko element wizualny to przystaję przy jquery
Kombinuję z czymś takim:
<?php wp_list_pages('title_li&link_after=<div class="border"></div>'); ?>
ale div pojawia mi się przed a powinien za… ktoś ma jakiś pomysł ?
napisać własną funkcję moje_list_pages() i użyć get_posts() oraz własnej pętli.
Nie chciałbym jakoś bardzo głęboko ingerować w kod php strony.. w tym nie jestem póki co zbyt mocny 🙂
Zostałeś rzucony na głęboką wodę i:
oczywiście jeżeli powiecie że nie mam innego wyjścia to oczywiście spróbuję…
Nie ma.
Bo
wp nav menu
możesz tworzyć rozbudowane struktury menu (o to będziesz pytał w „przyszłości na forum”) awp list pages
tylko wypluwa Ci strony.Ew. jak się już upierasz przy tym wp_lisp_pages to jest tam podobna funkcja z tym, że taki separator dodaje w troche inne miejsce:
title_li
to tylko nagłówek dla listy stronSeparator możesz uzyskać dodając to:
link_before
lublink_after
Czyli całość:
<?php wp_list_pages('link_after= | '); ?>
Reszte załatwiasz przez css
pipe | będzie trudno wystylizować i poza tym słabo dodawać znak jako zawartość linku. Już prędzej css
a:after{
content:”|”;
}lub
<?php wp_list_pages(’link_after= <span></span>’); ?>
i stylizować border spana
ale w ten sposób <span></span> pojawi się przd zakończeniem linku a chodzi o to żeby pojawił się za…
napisałem coś takiego:
<?php wp_list_pages('title_li&link_after=</a><div class="border"></div>'); ?>
i działa, ale oczywiście tworzą sie w ten sposób dwa
</a>
🙂 wiem że tak nie może być…acronym dodaje się automatycznie. Usuń go z funkcji!
Już go usunąłem… pokazuję tylko na jaki „genialny” pomysł wpadłem. 😉
Poczytam o tym wp nav menu, może uda mi się znaleźć coś, co uda mi się wykorzystać.. chyba że znacie jakiś artykuł który na pewno mi pomoże… najlepiej w moim ukochanym ojczystym języku polskim 🙂
Po pierwsze dałeś nam niezłe pole do namysłu.
Jakie to jest menu? Pionowe czy poziome?
poziome
- Temat ‘Struktura menu problemik’ jest zamknięty na nowe odpowiedzi.