在 wordpress 中仅将菜单 permalink/hyperlink 替换为菜单 name/slug
Replace menu permalink/hyperlink with only menu name/slug in wordpress
我不知道我问的是否正确,但我会尝试。 我这样做是为了历史推送状态目的。
代码 获取没有 ul
和 li
的菜单:
$topmenu= array(
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0
);
echo strip_tags(wp_nav_menu( $topmenu), '<a>');
目前,它只给我 <a>
标签和预期的 href
。
例如:
<a href="http://example.com/page1">Page 1</a>
<a href="http://example.com/page2">Page 2</a>
<a href="http://example.com/page3">Page 3</a>
// etc
我的问题:
如何在 href
属性中 disable/hide 完整 permalink/hyperlink,但继续显示页面错误?
我需要的例子:
<a href="/page1"></a>
// etc
我试图让这项工作改变nav-menu-template.php
,但我失败了。
感谢您的回答。
那么就不需要使用 wp_nav_menu 构建导航了。
如果您只想获取您在 wordpress 后端设置的导航链接,您需要导航的名称、id 或 slug。
您可以通过
获得nav_menu_items
$items = wp_get_nav_menu_items( 'name_of_your_navigation' );
现在您需要像这样从每个项目的 url 中删除 home_url
foreach ( $items as $item ) {
$url = str_replace( home_url(), '', $item->url );
echo '<a href="' . $url . '">' . $url . '</a>';
}
我不知道我问的是否正确,但我会尝试。 我这样做是为了历史推送状态目的。
代码 获取没有 ul
和 li
的菜单:
$topmenu= array(
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0
);
echo strip_tags(wp_nav_menu( $topmenu), '<a>');
目前,它只给我 <a>
标签和预期的 href
。
例如:
<a href="http://example.com/page1">Page 1</a>
<a href="http://example.com/page2">Page 2</a>
<a href="http://example.com/page3">Page 3</a>
// etc
我的问题:
如何在 href
属性中 disable/hide 完整 permalink/hyperlink,但继续显示页面错误?
我需要的例子:
<a href="/page1"></a>
// etc
我试图让这项工作改变nav-menu-template.php
,但我失败了。
感谢您的回答。
那么就不需要使用 wp_nav_menu 构建导航了。 如果您只想获取您在 wordpress 后端设置的导航链接,您需要导航的名称、id 或 slug。
您可以通过
获得nav_menu_items$items = wp_get_nav_menu_items( 'name_of_your_navigation' );
现在您需要像这样从每个项目的 url 中删除 home_url
foreach ( $items as $item ) {
$url = str_replace( home_url(), '', $item->url );
echo '<a href="' . $url . '">' . $url . '</a>';
}