【问题标题】:how to add string var in array如何在数组中添加字符串var
【发布时间】:2014-05-20 16:26:58
【问题描述】:

这是我想替换的函数: array('administrator','author') 带有类似 array($string) 的 var 所以我有一个来自我的主题选项(来自一个选择字段)的数组,它返回我在我的函数中需要的用户角色,它返回如下:

 Array ( [0] => administrator [1] => author [2] => subscriber )

我做到了:

 $string = "'".implode("','",$array)."'";

我的功能:

add_filter("login_redirect", "subscriber_login_redirect", 10, 3);

function subscriber_login_redirect($redirect_to, $request, $user) {

    if(is_array($user->roles))
      if ( count( array_diff( $user->roles, array($string) ) ) !== count( $user->roles ) ) return site_url('/wp-admin/')

    return home_url();
}

但仍然存在问题,在我的控制台日志中,字符串 var 返回 'administrator'、'author'、'subscriber'

感谢您的帮助

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    使用explode从字符串中创建一个数组

    Array ( [0] => administrator [1] => author [2] => subscriber )
    
    $string = implode(",",$array);
    
    add_filter("login_redirect", "subscriber_login_redirect", 10, 3);
    
    function subscriber_login_redirect($redirect_to, $request, $user) {
    
        if(is_array($user->roles))
          if ( count( array_diff( $user->roles, explode(",",$string) ) ) !== count( $user->roles ) ) return site_url('/wp-admin/')
    
        return home_url();
    }
    

    “,”可能不是一个好的分隔符,请使用很可能是唯一的东西,例如管道 |甚至可能是字符串组合(例如!|!)

    【讨论】:

    • 非常感谢,我使用管道。关于explode的信息
    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 2018-09-02
    • 2016-07-16
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多