动态生成单页导航菜单

时间:2011-10-22 00:53:44

标签: wordpress wordpress-plugin

所有人!我已经在WP支持论坛上发布了这个问题,但是社区似乎没有像堆栈一样活跃,所以我在这里抓住机会!

我正在寻找一个可以在长单页文档页面上自动创建导航菜单(例如通过使用短代码)的插件。 长页分为几个部分。我可以想象在每个部分的开头都使用一个短代码,这将创建一个菜单,例如可以在侧边栏中显示(可能通过第二个短代码或小部件调用)

有什么想法?建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用[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');