在短码中使用ACF数组值

时间:2017-05-17 作者:zfors

我有一个客户使用一些第三方表单,我想很容易地在他们的网站上找到这些表单。

为了方便地在站点范围内更新它们,我想我应该在选项页面上创建一个ACF repeater字段,其中包含form_idform_markup 我可以用它来构建短代码。用户可以在短代码中只输入表单的id,表单就会输出。

i、 e。[form form_id="1"]

问题是:如何从数据数组中调用正确的ID?我从这里开始:

function form_shortcode( $atts ) {

    // Attributes
    shortcode_atts(
        array(
            \'form_id\'   => \'\',
        ), $atts
    )

    $forms = get_field( \'forms\', \'option\' );
    foreach ( $forms as $form ) {
        $form_id = get_sub_field( \'form_id\', \'option\' );
    }

    return $form_id;

}

add_shortcode( \'form\', \'form_shortcode\' );
我知道这是不对的,但我很难弄清楚这在后勤方面究竟应该如何运作。我真的很接近吗?

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

$atts[\'form_id\'] 包含form_id 这是用短代码传递的。您正在搜索此form_idforms 领域

$forms 是一个数组,数组中的每个项目都是另一个带有两个键的数组:form_idform_markup.

因此,对于$forms, 你想检查一下form_id 匹配form_id 在短代码中请求。如果有匹配,return 这个form_markup 从该项目。

如果未找到匹配项,return 错误消息。

$forms = get_field( \'forms\', \'option\' );
foreach ( $forms as $form ) {
    if( $atts[\'form_id\'] == $form[\'form_id\'] ){
        return $form[\'form_markup\'];
    }
}

return \'form id \' . $atts[\'form_id\'] . \' not found\';

结束

相关推荐

Shortcode into widget

我有一个特殊的短代码“[示例]”我知道我可以把它放在一个文本小部件中使其工作。但我想知道如何将其转换为一个名为“示例”的小部件有什么建议吗?非常感谢。

在短码中使用ACF数组值 - 小码农CODE - 行之有效找到问题解决它

在短码中使用ACF数组值

时间:2017-05-17 作者:zfors

我有一个客户使用一些第三方表单,我想很容易地在他们的网站上找到这些表单。

为了方便地在站点范围内更新它们,我想我应该在选项页面上创建一个ACF repeater字段,其中包含form_idform_markup 我可以用它来构建短代码。用户可以在短代码中只输入表单的id,表单就会输出。

i、 e。[form form_id="1"]

问题是:如何从数据数组中调用正确的ID?我从这里开始:

function form_shortcode( $atts ) {

    // Attributes
    shortcode_atts(
        array(
            \'form_id\'   => \'\',
        ), $atts
    )

    $forms = get_field( \'forms\', \'option\' );
    foreach ( $forms as $form ) {
        $form_id = get_sub_field( \'form_id\', \'option\' );
    }

    return $form_id;

}

add_shortcode( \'form\', \'form_shortcode\' );
我知道这是不对的,但我很难弄清楚这在后勤方面究竟应该如何运作。我真的很接近吗?

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

$atts[\'form_id\'] 包含form_id 这是用短代码传递的。您正在搜索此form_idforms 领域

$forms 是一个数组,数组中的每个项目都是另一个带有两个键的数组:form_idform_markup.

因此,对于$forms, 你想检查一下form_id 匹配form_id 在短代码中请求。如果有匹配,return 这个form_markup 从该项目。

如果未找到匹配项,return 错误消息。

$forms = get_field( \'forms\', \'option\' );
foreach ( $forms as $form ) {
    if( $atts[\'form_id\'] == $form[\'form_id\'] ){
        return $form[\'form_markup\'];
    }
}

return \'form id \' . $atts[\'form_id\'] . \' not found\';

相关推荐

Namespaced shortcode?

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