在插件中我有这段代码..
$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' );
谢谢
答案 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 );