快捷码删除格式并在内容顶部返回

时间:2013-06-19 作者:Christopher

使用高级自定义字段插件,我得到了一个用于repeater字段的短代码,但它会返回位于内容顶部的列表。我从一个echo 到areturn, 据我所知,这将解决它出现在内容顶部的问题,但事实并非如此,现在它将所有html剥离出来,并将整个内容作为一个大文本块返回。很明显我做错了什么。

function teamlist_shortcode($atts, $content = null) {
if (get_field(\'aw_team_members\')):
while (has_sub_field(\'aw_team_members\')):

$string = \'<h3>\' . the_sub_field(\'team_name\') . \'</h3><h3 class="subtitle">\' . the_sub_field(\'team_title\') . \'</h3>\' . the_sub_field(\'team_bio\');

endwhile;
return $string;
endif; 
}
add_shortcode(\'teamlist\', \'teamlist_shortcode\');

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

the_sub_field echos内容。医生对此非常清楚。

\\u sub\\u field函数与repeater字段和flexible content字段(需要许可证密钥)一起使用,以显示子字段值。循环遍历其中一个字段时,此函数将显示当前行中的子字段。

这与echo get\\u sub\\u field()相同;

http://www.advancedcustomfields.com/resources/functions/the_sub_field/

使用get_sub_field 构造字符串。

函数名遵循常见(但不是通用)WordPress模式或使用the_ 函数的前缀echo 以及get_ 返回的函数的前缀。

但是,仍然会有一个问题,您的代码会完全覆盖$string 在每次迭代中。您需要将一个字符串与所有结果连接在一起,这很容易使用.= 而不仅仅是=.

function teamlist_shortcode($atts, $content = null) {
  if (get_field(\'aw_team_members\')):
    $string = \'\';
    while (has_sub_field(\'aw_team_members\')):
      $string .= \'<h3>\' . the_sub_field(\'team_name\') . \'</h3><h3 class="subtitle">\' . the_sub_field(\'team_title\') . \'</h3>\' . the_sub_field(\'team_bio\');
    endwhile;
    return $string;
  endif; 
}
add_shortcode(\'teamlist\', \'teamlist_shortcode\');

结束

相关推荐

Shortcode of a function

我得到了这个函数,我想将“foreach”的contents divs作为return。我该怎么做?<?php $args = array( \'numberposts\' => 6, \'post_status\'=>\"publish\",\'post_type\'=>\"post\",\'orderby\'=>\"post_date\"); $postslist = get_posts( $args ); fo

快捷码删除格式并在内容顶部返回 - 小码农CODE - 行之有效找到问题解决它

快捷码删除格式并在内容顶部返回

时间:2013-06-19 作者:Christopher

使用高级自定义字段插件,我得到了一个用于repeater字段的短代码,但它会返回位于内容顶部的列表。我从一个echo 到areturn, 据我所知,这将解决它出现在内容顶部的问题,但事实并非如此,现在它将所有html剥离出来,并将整个内容作为一个大文本块返回。很明显我做错了什么。

function teamlist_shortcode($atts, $content = null) {
if (get_field(\'aw_team_members\')):
while (has_sub_field(\'aw_team_members\')):

$string = \'<h3>\' . the_sub_field(\'team_name\') . \'</h3><h3 class="subtitle">\' . the_sub_field(\'team_title\') . \'</h3>\' . the_sub_field(\'team_bio\');

endwhile;
return $string;
endif; 
}
add_shortcode(\'teamlist\', \'teamlist_shortcode\');

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

the_sub_field echos内容。医生对此非常清楚。

\\u sub\\u field函数与repeater字段和flexible content字段(需要许可证密钥)一起使用,以显示子字段值。循环遍历其中一个字段时,此函数将显示当前行中的子字段。

这与echo get\\u sub\\u field()相同;

http://www.advancedcustomfields.com/resources/functions/the_sub_field/

使用get_sub_field 构造字符串。

函数名遵循常见(但不是通用)WordPress模式或使用the_ 函数的前缀echo 以及get_ 返回的函数的前缀。

但是,仍然会有一个问题,您的代码会完全覆盖$string 在每次迭代中。您需要将一个字符串与所有结果连接在一起,这很容易使用.= 而不仅仅是=.

function teamlist_shortcode($atts, $content = null) {
  if (get_field(\'aw_team_members\')):
    $string = \'\';
    while (has_sub_field(\'aw_team_members\')):
      $string .= \'<h3>\' . the_sub_field(\'team_name\') . \'</h3><h3 class="subtitle">\' . the_sub_field(\'team_title\') . \'</h3>\' . the_sub_field(\'team_bio\');
    endwhile;
    return $string;
  endif; 
}
add_shortcode(\'teamlist\', \'teamlist_shortcode\');

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗