wordpress - 为什么我的简码出现在其父 div 之外?
问题描述
#menu-social-media-links 应该在 .textwidget div 内
这是我的简码:
add_shortcode( 'social-media', 'social_media_icons' );
function social_media_icons( $atts ) {
if (has_nav_menu( 'social' )) {
wp_nav_menu(
array(
'container' => false,
'theme_location' => 'social',
'menu_class' => 'social-links-menu',
'link_before' => '<span class="screen-reader-text">',
'link_after' => '</span>' . twentynineteen_get_icon_svg( 'link' ),
'depth' => 1,
)
);
}
}
解决方案
您应该从简码返回标记,而不是输出它。这是正确的代码,将按预期运行。
add_shortcode( 'social-media', 'social_media_icons' );
function social_media_icons( $atts ) {
$markup = '';
if (has_nav_menu( 'social' )) {
$markup = wp_nav_menu(
array(
'container' => false,
'echo' => false,
'theme_location' => 'social',
'menu_class' => 'social-links-menu',
'link_before' => '<span class="screen-reader-text">',
'link_after' => '</span>' . twentynineteen_get_icon_svg( 'link' ),
'depth' => 1,
)
);
}
return $markup;
}
推荐阅读
- mysql - 给定特定的日期时间和分钟数,我如何仅在工作时间计算结束日期时间,不包括多个休息时间和天数翻转?
- python - 在 python 中使用插入排序时给出 key error = 0
- python - Python 中 Java 的 InheritableThreadLocal 等价物
- reactjs - 路由器状态在反应中的持久性如何?
- bash - Linux Bash 脚本查找并加入
- sql-server - 合并 string_split 操作的结果并更新表
- javascript - 更改位置css时使元素平滑移动
- css - 如何使 Angular-CLI 将 SCSS 编译为 CSS 并将其复制到 assets 文件夹
- c# - 加载时自动将 Kendo 网格分页到选定的行
- excel - 如何使用 VBA 在多个工作表中修改选定 Excel 工作表中的记录