我正在接管一个站点,我们正在为它创建一个姐妹站点,但问题是导航是为另一个站点设置的,所以我在获取导航链接到页面时遇到了问题。它所做的是使用某种过滤器。。。因此,当我尝试单击导航栏上的链接时,除了显示一个空的下拉菜单外,什么也不会发生。我们没有在这个项目上的子页面需要,所以我需要帮助找出如何编辑过滤器,使父页面作为链接,而不是“菜单标题”,如果你愿意的话。
这是我的代码:
<?php
//add_filter (\'wp_list_pages\', \'formatNavList\');
$myPages = wp_list_pages(array(\'title_li\' =>\'\', \'depth\' =>1, \'sort_column\' => \'menu_order, post_title\', \'echo\' =>0, ));
$templateDir = get_bloginfo("template_directory");
$pattern1 = "/<li.*?>.*?<a.*?>(.*?)<\\/a>/is";
$replString1 = "<li class=\'navButton\' >$1
<div class=\'dropdown1Col\' >
<img class=\'dropdown1ColTop\' src=\'$templateDir/images/bgGraphics/DropDownNav_1ColTop_200x30.png\' />
<div>
<img class=\'dropdown1ColMid\' src=\'$templateDir/images/bgGraphics/DropDownNav_1ColMid_Stretch.png\' />";
$pattern2 = "/(<\\/li>\\s*?<li[^>]*navButton.*?>)/is";
$replString2 = " <p class=\'clearFloat\' />
</div>
<img class=\'dropdown1ColBtm\' src=\'$templateDir/images/bgGraphics/DropDownNav_1ColBtm_200x30.png\' />
</div>$1";
$pattern3 = "/(<\\/li>\\s*?)$/is";
$replString3 = " <p class=\'clearFloat\' />
</div>
<img class=\'dropdown1ColBtm\' src=\'$templateDir/images/bgGraphics/DropDownNav_1ColBtm_200x30.png\' />
</div>";
$menu = explode(\'<li \', $myPages);
$sub = 0;
$i = 0;
$id = array();
foreach ($menu as $key => $val) {
$match = $matches = 0;
if ($sub == 0){
$id[] = $key;
$pos = strpos($val,\'<a\');
$text = preg_replace($pattern1, $replString1, "<li alt=\'$sub\' $val");
$output .= $text;
}else{
$output .= "<li alt=\'$sub\' $val";
}
if (preg_match_all("/(<ul class=\'children\'>)/",$val,$match,PREG_PATTERN_ORDER)){
$sub = $sub + count($match[0]);
}else if (preg_match_all("/(<\\/ul>)/",$val,$matches,PREG_PATTERN_ORDER)){
$sub = $sub - count($matches[0]);
};
$i++;
if($i==3){$i=0;};
}
$output = preg_replace($pattern2, $replString2, $output);
$output = preg_replace($pattern3, $replString3, $output);
echo $output;
?>
任何帮助都将不胜感激!提前感谢您!
SO网友:Jeremy Jared
我建议为您的站点使用WP\\u Nav菜单。要使用此功能,只需将其添加到当前导航的位置:
<?php
add_action( \'init\', \'register_my_menus\' );
function register_my_menus() {
register_nav_menus(
array(
\'primary-menu\' => __( \'Main Menu\' ),
\'secondary-menu\' => __( \'Secondary Menu\' ),
\'tertiary-menu\' => __( \'Tertiary Menu\' )
)
);
}
?>
然后,您可以使用此选项在模板文件中显示导航:
<div id="menu">
<?php wp_nav_menu( array( \'theme_location\' => \'primary-menu\' ) ); ?><!-- End Navigation -->
</div><!-- End #menu-->
使用上述代码,您可以在不同位置使用最多3个菜单。要添加另一个菜单,只需将上面示例中的“主菜单”更改为功能中列出的其他3个菜单之一。php文件。现在,您可以转到WP Admin>Appearance>菜单,创建导航菜单,将页面/帖子或类别/标签添加到菜单中,并使其达到您想要的深度。