【问题标题】:Echoing shortcode within a function在函数中回显短代码
【发布时间】:2017-01-24 07:24:18
【问题描述】:

我想在我的头 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;
}

我认为将短代码作为字符串传递,然后在列表项中回显短代码会起作用,但它只输出文本“echo do_shortcode($shortcode);”而不是实际的简码。实在是太尴尬了!

【问题讨论】:

  • $items .= '&lt;li class="menu-item nav-item" id="menu-item"&gt;'. do_shortcode( $shortcode) . '&lt;a title="Cart" href="./cart" class="nav-link"&gt;&lt;/a&gt;&lt;/li&gt;'; 所以进一步尝试这可以显示短代码,但它不会在
  • 元素内呈现它...更接近?

标签: php html wordpress shortcode


【解决方案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>';

您不想在返回字符串时回显短代码,您想将值附加到字符串,因此使用 '.和 。'从字符串中分离出来,添加您的短代码,然后添加回字符串的其余部分。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签