将自定义混洗过滤器添加到木材/树枝

问题描述

我想改组数组并将以下过滤器添加到我的functions.PHP

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

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

        return $twig;
    } );

但是,以下代码不返回任何内容

{% 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;
} );