我正在尝试将href更改为本地锚点。我的想法是使用preg_replace来剥离home_url((;
而不是。。。。
<a href="http://example.com/menu-item/">Menu Item</a>
我想创建
<a href="#menu-item/">Menu Item</a>
到目前为止我的代码:
$menu_one = wp_nav_menu(
array(
'echo' => 0,
'container' => false,
'menu_class' => '',
'menu_id' => '',
'theme_location' => 'main-menu'
)
);
//get home url
$homeurl = home_url();
$menu_one = preg_replace( $homeurl, '#', $menu_one );
echo '<ul id="main-menu">' . $menu_one . '</ul>';
我当前得到错误preg_replace((:分隔符不能是字母数字或反斜杠;任何帮助都将不胜感激(我的php知识非常有限,也许还有一种更优雅的方法可以做到这一点(
您需要将$homeurl
包装在像/$homeurl/
这样的分隔符中,使其成为有效的正则表达式模式。
此外,对URL中的某些字符进行转义也是至关重要的。
// Some characters must be "escaped" e.g the / must become /.
$homeurl = preg_quote( $homeurl );
// Wrap the string in a delimiter that preg_replace expects:
$homeurl = "/$homeurl/";
// Now try it:
$menu_one = preg_replace( $homeurl, '#', $menu_one );