如何在wordpress中添加add_filter,更改数组

时间:2013-10-18 11:38:16

标签: php arrays wordpress jigoshop

在插件中我有这段代码..

            $links = apply_filters( 'jigoshop_widget_logout_user_links' , array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         => wp_logout_url( home_url() ),
        ));

是否可以使用add_filter函数更改此数组的值?

我目前正在尝试学习过滤器,并试图将其作为一个简单的例子。

我不确定如何将新信息传递给此数组,如果可能的话。

假设我想要更改

的值

__( 'My Account', 'jigoshop' ) => get_permalink( jigoshop_get_page_id('myaccount') )

__( 'Logout', 'jigoshop' ) =>'test'

到目前为止,我有这个......

function change_links() {
            $links = apply_filters( 'jigoshop_widget_logout_user_links' , array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         =>'test',
        ));
    return $links;
}

 add_filter( 'jigoshop_widget_logout_user_links', 'change_links' );

谢谢

1 个答案:

答案 0 :(得分:1)

通过传递参数来更改添加过滤器的方式,您也不需要另外做apply_filter

function change_links($arr) {
    $arr = array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         =>'test',
        );
    return $arr;
}

 add_filter( 'jigoshop_widget_logout_user_links', 'change_links', 10, 1 );