【问题标题】:Replace menu permalink/hyperlink with only menu name/slug in wordpress用wordpress中的菜单名称/slug替换菜单永久链接/超链接
【发布时间】:2015-11-01 01:37:38
【问题描述】:

我不知道我问这个是否正确,但我会尝试。 我这样做是出于历史推送状态的目的。

代码获取没有ulli的菜单:

$topmenu= array(
  'container'       => false,
  'echo'            => false,
  'items_wrap'      => '%3$s',
  'depth'           => 0
);

echo strip_tags(wp_nav_menu( $topmenu), '<a>');

目前,它只给了我&lt;a&gt;标签和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 属性中禁用/隐藏完整的永久链接/超链接,但继续显示页面 slug?

我需要什么例如:

<a href="/page1"></a>
// etc

我试图让这项工作改变nav-menu-template.php,但我失败了。

感谢您的任何回答。

【问题讨论】:

    标签: wordpress menu navigation permalinks


    【解决方案1】:

    那么就不需要使用 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>';
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      相关资源
      最近更新 更多