您可以修改href
生成菜单时特定菜单项的属性。
function wpd_convert_menu_items_to_hash( $atts, $item, $args ) {
if( $somecondition ){
$atts[\'href\'] = \'#\';
}
return $atts;
}
add_filter( \'nav_menu_link_attributes\', \'wpd_convert_menu_items_to_hash\', 10, 3 );
在本例中,
$somecondition
无论你用什么方式识别这些菜单项。
$item
允许您访问菜单项对象,其中包含页面ID和slug等内容。您还可以查看
$atts[\'href\']
, 这将是该页面的默认URL值。
$args
将允许您访问nav菜单参数,因此您可以将整个内容定位到特定菜单。
你也可以钩住template_redirect
并将这些页面的请求发送到其他地方。
function wpd_check_if_page_should_be_visible(){
if( is_page( \'services\' ) ){
wp_redirect( home_url(\'/services/some-other-page/\') );
}
}
add_action( \'template_redirect\', \'wpd_check_if_page_should_be_visible\' );
您可以修改上述内容以检查post meta中的值,这样slug就不会硬编码。您还可以查询子页面并转发到子页面,这样目标就不必是动态的。