在函数

时间:2016-09-16 06:36:30

标签: php html wordpress shortcode

我想在我的标题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;而不是实际的短代码。真的很尴尬!

1 个答案:

答案 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;哪个突破了字符串,添加你的短代码然后添加回字符串的其余部分。