我正在尝试替换所有子页面URL以自动包含#
示例:http://www.website.com/parentfoo/#childfoo
我试过使用wp_setup_nav_menu_item
运行所有子菜单项并向其中添加“#”,但现在$menu\\u item->post\\u name会显示ID,因此我不知道如何正确替换字符串。
目前为止我拥有的:
function auto_hashtag( $menu_item ) {
if ( ! is_admin() && $menu_item->post_parent > 0) {
// url
$url = $menu_item->url;
// slug
$slug = $menu_item->post_name;
$menu_item->url = str_replace($slug, "#"+$slug, $url);
}
return $menu_item;
}
add_filter( \'wp_setup_nav_menu_item\', \'auto_hashtag\' );
SO网友:Douglas.Sesar
你想做的似乎是个坏主意;这个#
URL末尾使用符号表示网站滚动到的定位点位置。
以这个链接的页面为例:
Add # to submenu URLs automatically
单击时,它会将屏幕向下移动到
<div>
标记为
id
属于
post-form
.
在您给出的示例中http://www.website.com/parentfoo/#childfoo
, 浏览器将转到“parentfoo”页面,并查找带有id
属于childfoo
.
将所有默认URL重写更改为您想要的URL结构是一个坏主意。
换句话说,如果继续,子页面URL将不再是子页面URL。
也许我只是不明白你想做什么??