【发布时间】:2011-11-24 16:30:09
【问题描述】:
我正在开发一个 wordpress 仪表板插件,该插件旨在在 wordpress 表格的管理仪表板中显示订阅者列表。
当我只需要订阅者时,除了所有注册用户都显示在数组中之外,一切都正常工作。我正在使用以下代码创建数组..
function prepare_items() {
$per_page = 5;
$columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM $wpdb->users", ARRAY_A);
$i = 0;
foreach($data as $single) {
$meta = $wpdb->get_results(
"SELECT meta_value
FROM $wpdb->usermeta
WHERE user_id = $single[ID]
AND (meta_key = 'first_name' OR meta_key = 'last_name' OR meta_key = 'wp_user_level')
ORDER BY meta_key",
ARRAY_A
);
$data[$i]['first_name'] = $meta[0]['meta_value'];
$data[$i]['last_name'] = $meta[1]['meta_value'];
$data[$i]['wp_user_level'] = $meta[2]['meta_value'];
$i++;
}
echo '<pre>';
print_r($data2);
echo '</pre>';
通过使用 print_r,我可以看到 wp_users 和 wp_usermeta 这两个表正在正确连接,并且我需要的所有详细信息都返回到数组中。
我现在需要做的是使用某种 array_filter 来仅返回 wp_user_level 为 0(订阅者)的条目。
我已经尝试了以下......
$data = array_filter($data, 'filter_subscribers');
function filter_subscribers()
{
return $data2['wp_user_level'] == '0';
}
但这对我不起作用,任何人都可以提出任何建议吗?
【问题讨论】:
标签: php arrays wordpress array-filter