我想在我的标题php文件中回显一个购物车下拉列表的短代码。我想出了如何使用函数将菜单项附加到主菜单,并希望在列表中包含购物车下拉列表的短代码。
我的功能是;
add_filter( 'wp_nav_menu_items', 'append_menu_item', 10, 2 );
function append_menu_item( $items, $args )
{
$items .= '<li class="menu-item nav-item" id="menu-item"></li>';
return $items;
}
购物车下拉列表的短代码是;
<?php echo do_shortcode( '[nc_ajax_cart]' );?>
哪个输出此HTML(具有下拉列表的链接和div);
<a id="nc_ajax_cart_snippet" href="javascript:void(0)"></a>
<div id="nc_ajax_cart_mini_cart" style="display:none">
<! Snipped for reading purposes -->
</div><!-- end cart-->
我的php很差,在尝试插入echo短码时我一直都会遇到错误。我不确定这是否是最好的方法。
非常感谢任何帮助,指针或链接!
编辑;
正如我所说,我的PHP非常基础,我觉得我很困惑。我想到了它并尝试了这个;
add_filter( 'wp_nav_menu_items', 'append_menu_item', 10, 2 );
function append_menu_item( $items, $args )
{
$shortcode = '[nc_ajax_cart]';
$items .= '<li class="menu-item nav-item" id="menu-item"> echo 'do_shortcode( $shortcode)'; <a title="Cart" href="./cart" class="nav-link"></a></li>';
return $items;
}
我认为将短代码作为字符串传递,然后回显列表项中的短代码将起作用,但它只输出文本&#34; echo do_shortcode($ shortcode);&#34;而不是实际的短代码。真的很尴尬!
答案 0 :(得分:1)
尝试更改此行
$items .= '<li class="menu-item nav-item" id="menu-item"> echo 'do_shortcode( $shortcode)'; <a title="Cart" href="./cart" class="nav-link"></a></li>';
到
$items .= '<li class="menu-item nav-item" id="menu-item">'.do_shortcode( $shortcode).'<a title="Cart" href="./cart" class="nav-link"></a></li>';
您不希望在返回字符串时回显短代码,您希望将值附加到字符串,因此使用&#39;。和。&#39;哪个突破了字符串,添加你的短代码然后添加回字符串的其余部分。