我是wordpress的新手,但是我求帮忙,所以我想帮忙。 我有这样一堆代码,显示一切都很好。事实是,我需要在每个页面上添加一个不同的子菜单。所以我想过如果(current_page ==' page')显示bla bla bla ... 但是在functions.php中,我发现只有关于侧栏的代码才能保留菜单:
function wp_hot_kindergarten_widgets_init() {
global $theme_slug;
$doc = new DOMDocument();
$doc->load(FUNCTIONS_PHP_BASEPATH . DIRECTORY_SEPARATOR .'theme.xml');
$doc->normalizeDocument();
$XTheme = $doc->getElementsByTagName( "extension" )->item(0);
$XPosEL = $XTheme->getElementsByTagName( "positions" )->item(0);
$XPositions = $XPosEL->getElementsByTagName( "position" );
$all_layouts_str = '';
$XConfig = $XTheme->getElementsByTagName( "config" )->item(0);
$XFDS = $XConfig->getElementsByTagName( "fields" )->item(0);
$XFieldSets = $XFDS->getElementsByTagName( "fieldset" );
foreach( $XFieldSets as $XFieldSet )
{
$XFields = $XFieldSet->getElementsByTagName( "field" );
foreach( $XFields as $XField){
if($XField->getAttribute("type") == 'designlayout'){
$all_layouts_str .= (get_option($theme_slug.'_'.$XField->getAttribute("name")).' ');
}
}
}
foreach($XPositions as $XPosition){
if($XPosition->getAttribute('layout_embeded') == 'true' || strpos(strtolower($all_layouts_str),strtolower($XPosition->nodeValue).'=')){
register_sidebar( array(
'name' => ucfirst($XPosition->nodeValue),
'id' => strtolower($XPosition->nodeValue),
'description' => $XPosition->getAttribute("description"),
'before_widget' => $XPosition->getAttribute("before_widget"),
'after_widget' => $XPosition->getAttribute("after_widget"),
'before_title' => $XPosition->getAttribute("before_title"),
'after_title' => $XPosition->getAttribute("after_title")
));
}
}
}
并在页面上显示为:
dynamic_sidebar(ucfirst($mpostion[0]));
我应该如何,或者我可以添加if条件?抱歉,这是我使用WordPress的第一步,我迷失了自己。
答案 0 :(得分:0)
我相信您可以使用wp_nav_menu()
功能根据页面显示菜单。
Eg.
<?php
if (current_page == "xyz") {
wp_nav_menu( 'menu' => 'xyz-menu' );
}
else if (current_page == "abc") {
wp_nav_menu( 'menu' => 'abc-menu' );
}
?>
其中xyz-menu
和abc-menu
是您在后端创建的菜单。