如何将ACF字段从字符串转换为整数?

时间:2018-10-18 作者:fridayikon

enter image description here客户将输入报告生成年份(如2010年)的信息。我想获取这些信息,并计算它是否是在过去3年内制作的,以便我可以在“最近的文档”部分显示它。任何与结果不匹配的其他报告都将发送到档案部门。我想得对吗?

<?php if( have_rows(\'recent_documents\') ): ?>

                <ul class="list-unstyled">
                        <?php while( have_rows(\'recent_documents\') ): the_row(); ?>
                            <?php if ( have_rows(\'new_document\') ): ?>
                                <?php while ( have_rows(\'new_document\') ): the_row(); ?>
                                    <?php $year = the_sub_field(\'year\'); ?>
                                    <?php if ( $year > date("Y",strtotime("-1 year"))) : ?>
                                        <li>
                                            <a href="<?php the_sub_field(\'file\'); ?>" target="blank"><?php the_sub_field(\'year\'); ?> <?php the_sub_field(\'report_type\'); ?><span><i class="fas fa-download"></i></span></a>
                                        </li>
                                    <?php endif; ?>
                                <?php endwhile; ?>
                        <?php endif; endwhile; ?>
                </ul>

            <?php endif; ?>

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

首先要解决的是the_sub_field(\'year\'), 因为它将打印出您的年份字符串,而不是将其传递给变量。相反,我认为你想要

$year = get_sub_field(\'year\');
为了回答你的问题,通过传递将字符串转换为int很容易(int) 在物品前面。

$year = (int)get_sub_field(\'year\');

SO网友:dj.cowan

高级自定义字段(ACF)支持论坛…您可以筛选字段“;“类型”;转换为并返回特定的数据类型。

    function strict_type_acf_numeric_field($value, $post_id, $field): int
{
    $value = (int) $value;
    return $value;
}

add_filter(\'acf/format_value/type=range\', \'926i_strict_type_acf_numeric_field\', 10, 3);
add_filter(\'acf/format_value/type=number\', \'926i_strict_type_acf_numeric_field\', 10, 3);

reference link

结束

相关推荐

如何将ACF字段从字符串转换为整数? - 小码农CODE - 行之有效找到问题解决它

如何将ACF字段从字符串转换为整数?

时间:2018-10-18 作者:fridayikon

enter image description here客户将输入报告生成年份(如2010年)的信息。我想获取这些信息,并计算它是否是在过去3年内制作的,以便我可以在“最近的文档”部分显示它。任何与结果不匹配的其他报告都将发送到档案部门。我想得对吗?

<?php if( have_rows(\'recent_documents\') ): ?>

                <ul class="list-unstyled">
                        <?php while( have_rows(\'recent_documents\') ): the_row(); ?>
                            <?php if ( have_rows(\'new_document\') ): ?>
                                <?php while ( have_rows(\'new_document\') ): the_row(); ?>
                                    <?php $year = the_sub_field(\'year\'); ?>
                                    <?php if ( $year > date("Y",strtotime("-1 year"))) : ?>
                                        <li>
                                            <a href="<?php the_sub_field(\'file\'); ?>" target="blank"><?php the_sub_field(\'year\'); ?> <?php the_sub_field(\'report_type\'); ?><span><i class="fas fa-download"></i></span></a>
                                        </li>
                                    <?php endif; ?>
                                <?php endwhile; ?>
                        <?php endif; endwhile; ?>
                </ul>

            <?php endif; ?>

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

首先要解决的是the_sub_field(\'year\'), 因为它将打印出您的年份字符串,而不是将其传递给变量。相反,我认为你想要

$year = get_sub_field(\'year\');
为了回答你的问题,通过传递将字符串转换为int很容易(int) 在物品前面。

$year = (int)get_sub_field(\'year\');

SO网友:dj.cowan

高级自定义字段(ACF)支持论坛…您可以筛选字段“;“类型”;转换为并返回特定的数据类型。

    function strict_type_acf_numeric_field($value, $post_id, $field): int
{
    $value = (int) $value;
    return $value;
}

add_filter(\'acf/format_value/type=range\', \'926i_strict_type_acf_numeric_field\', 10, 3);
add_filter(\'acf/format_value/type=number\', \'926i_strict_type_acf_numeric_field\', 10, 3);

reference link

相关推荐