Одностраничное меню навигации, генерируемое динамически - PullRequest
0 голосов
/ 22 октября 2011

hHi все! Я разместил этот вопрос на форумах поддержки WP, но сообщество, кажется, не так активно, как в стеке, поэтому я рискну здесь!

Я ищу плагин, который бы автоматически создавал меню навигации (например, с помощью коротких кодов) на длинной странице документации на одну страницу. Длинная страница разделена на разделы. Я могу представить себе использование шорткода в начале каждого раздела, и это создаст меню, которое будет отображаться, например, на боковой панели (возможно, через второй шорткод или виджет)

Есть мысли? Совет

Спасибо!

1 Ответ

2 голосов
/ 23 октября 2011

Используйте [section]Section Title[/section] шорткоды, затем [section_navigation], где вы хотите выводить навигационные ссылки.

Это работает, но с массивным предупреждением - что [section_navigation] должно быть в вашем сообщении / странице после других [section] коротких кодов ...в противном случае он генерирует пустой список.

Вы можете использовать его в своей теме, поместив <?php echo do_shortcode("[section_navigation]");?> в sidebar.php.Он будет работать до тех пор, пока get_sidebar() после the_content() в ваших шаблонах тем (как правило, это так).

Это необходимо для перехода к functions.php

$whit_sections = "";

// [section]My Section Title[/section]                                          
function whit_section_shortcode( $atts, $title = null ) {
    // $content is the title you have between your [section] and [/section] 

    $id = urlencode(strip_tags($title)); 
    // strip_tags removes any formatting (like <em> etc) from the title.
    // Then urlencode replaces spaces and so on.

    global $whit_sections;
    $whit_sections .= '<li><a href="#'.$id.'">'.$title.'</a></li>';

    return '<span id="'.$id.'">'.$title.'</span>';

}
add_shortcode('section', 'whit_section_shortcode');


// [section_navigation]
function whit_section_navigation_shortcode( $atts, $title = null ) {

    global $whit_sections;
    return '<ul class="section-navigation">'.$whit_sections.'</ul>';

}
add_shortcode('section_navigation', 'whit_section_navigation_shortcode');
...