메뉴 항목 설명?wp_nav_menu () 용 커스텀 워커
3 대답
- 투표
-
- 2015-02-23
WordPress 3.0 부터 맞춤형 보행기가 필요 없습니다 . 더 이상!
walker_nav_menu_start_el
필터가 있습니다. https://developer.wordpress.org/reference/hooks/walker_nav_menu_start_el/예 :
function add_description_to_menu($item_output, $item, $depth, $args) { if (strlen($item->description) > 0 ) { // append description after link $item_output .= sprintf('<span class="description">%s</span>', esc_html($item->description)); // insert description as last item *in* link ($input_output ends with "</a>{$args->after}") //$item_output = substr($item_output, 0, -strlen("</a>{$args->after}")) . sprintf('<span class="description">%s</span >', esc_html($item->description)) . "</a>{$args->after}"; } return $item_output; } add_filter('walker_nav_menu_start_el', 'add_description_to_menu', 10, 4);
Since WordPress 3.0, you don't need a custom walker anymore!
There is the
walker_nav_menu_start_el
filter, see https://developer.wordpress.org/reference/hooks/walker_nav_menu_start_el/Example:
function add_description_to_menu($item_output, $item, $depth, $args) { if (strlen($item->description) > 0 ) { // append description after link $item_output .= sprintf('<span class="description">%s</span>', esc_html($item->description)); // insert description as last item *in* link ($input_output ends with "</a>{$args->after}") //$item_output = substr($item_output, 0, -strlen("</a>{$args->after}")) . sprintf('<span class="description">%s</span >', esc_html($item->description)) . "</a>{$args->after}"; } return $item_output; } add_filter('walker_nav_menu_start_el', 'add_description_to_menu', 10, 4);
-
좋은!@toscho의nav walker 솔루션을 사용하고 있었지만 훨씬 더 깨끗하고 유지 관리하기가 더 쉽습니다.Nice! I was using the nav walker solution by @toscho, but this is much cleaner and easier to maintain.This should be the accepted answer, much better practice.
- 1
- 2015-07-08
- Ronaldt
-
- 2012-04-18
이것은 다른 제안보다 좋거나 나쁘지 않습니다.단지 다릅니다.짧고 달콤합니다.
@toscho 에서 제안한대로 설명 필드를 사용하는 대신 다음에서 "제목"필드를 채울 수 있습니다.각 메뉴 항목에 원하는 텍스트를 입력하고 다음 CSS를 사용하세요.
.menu-item a:after { content: attr(title); }
또한 jQuery 를 사용하여 쉽게 추가 할 수 있지만 텍스트는 CSS가 적절 해 보일만큼 충분히 장식 적입니다..
This isn't better or worse than other suggestions; it's just different. It's short and sweet too.
Rather than using the description field as @toscho suggests, you could fill in the "Title" field on each menu item with the text you want, and then use this CSS:
.menu-item a:after { content: attr(title); }
It would also be easy to use jQuery to append it, but the text is ornamental enough that CSS seems appropriate.
-
- 2011-09-08
-
간단하고 쉬운 해결책이지만 어쨌든 차단하면 왜 'span'을 사용합니까?xhtml/html4는 링크 내부의 블록 요소를 허용하지 않지만 html5는 허용하므로`div` 만 사용하고 CSS가 필요하지 않습니다!Well its a simple and easy solution but why use `span` if you make it block anyway? xhtml/html4 not allows block elements inside links, html5 however does, so just use `div`, and no need for any css!
- 2
- 2013-03-05
- James Mitch
일반적인 Wordpress 메뉴는 다음과 같습니다.
<인용구>홈|블로그|회사 소개|연락처
하지만 다음 링크 아래에 설명이있는 페이지를 많이 보았습니다.
<인용구>홈페이지|우리의 블로그|우리에 대해 |문의
.... 우리를 만나 ...|더 읽기|기본 정보|문의 양식
어떻게 달성 할 수 있습니까?
(모든 테마의 핵심 기능이되기를 원하므로 플러그인은 사용하지 마세요. 어떻게 진행되는지 알고 싶습니다.)