将自定义随机播放过滤器添加到 Timber/Twig

Add custom shuffle filter to Timber/Twig

我想打乱数组并在我的 functions.php

中添加以下过滤器
    add_filter( 'timber/twig', function ( $twig ) {

        $twig->addFilter( new Timber\Twig_Filter( 'shuffle', function ( $array ) {
            $shuffle = shuffle( $array );
            return $shuffle;
        } ) );

        return $twig;
    } );

但是,下面的代码returns什么都没有:

{% for item in ["WordPress", "React", "Craft", "NodeJS", "Laravel", "Tailwind", "Vue", "Stencil"]|shuffle %}
     <h2 class="outline">{{ item }}</h2>
{% endfor %}

根据 DarkBee 的评论,我使用以下代码让它工作:

add_filter( 'timber/twig', function ( $twig ) {

    $twig->addFilter( new Timber\Twig_Filter( 'shuffle', function ( $array ) {
        shuffle( $array );
        $newArray = [];

        foreach ( $array as $item ) {
            array_push( $newArray, $item );
        }

        return $newArray;
    } ) );

    return $twig;
} );