我试图从用户配置文件的多选字段中获取meta\\u值,并将其转换为用户名,然后将其输入到数组中。假设用户选择了两个选项(数百个选项中的两个),分别等于“4889”和“4982”。这些需要转换为用户名“shop4889”和“shop4982”(只需在选择的开头添加“shop”)。结果应放入我的数组中,如下所示:$usernames = array(\'shop4889\', \'shop4982\');
这是我到目前为止的情况。
/**
* Create Shortcode for Grabbing Users
* Usage: [get_shop_users meta_key="stores" user_id="211"]
*/
function get_shop_users_shortcode( $atts ) {
$atts = extract( shortcode_atts( array(
\'user_id\' => um_profile_id(), // Profile ID of franchisee
\'meta_key\' => \'\', // Field we will look up shop numbers
), $atts ) );
if ( ! $user_id || empty( $meta_key ) ) return;
$meta_value = get_user_meta( $user_id, $meta_key, true );
if( is_serialized( $meta_value ) ){
$meta_value = unserialize( $meta_value );
}
if( is_array( $meta_value ) ){
$meta_value = implode(", shop",$meta_value );
}
return \'shop\' . apply_filters("um_user_shortcode_filter__{$meta_key}", $meta_value ) . \'\';
}
add_shortcode( \'get_shop_users\', \'get_shop_users_shortcode\' );
此代码将文本输出为“shop4889,shop4982”,但在我的数组中无法正常工作。我猜有更好的方法来衡量结果吗?
该数组需要使用以下代码,如果我输入用户名而不是从用户配置文件中调用用户名,则效果很好。
// Search these Usernames
$usernames = array(\'shop4889\', \'shop4982\');
// Fetch the User IDs
$prof_ids = array();
foreach ($usernames as $prof_id) {
$user = get_user_by(\'login\', $prof_id);
$prof_ids[] = $user->ID;
}
// WP_User_Query arguments
$args = array(
\'include\' => $prof_ids,
);