gpt4 book ai didi

php - WordPress get_user_meta() - 是否有更好的方法来提取大量用户数据?

转载 作者:行者123 更新时间:2023-11-30 21:22:29 24 4
gpt4 key购买 nike

我正在为一个 WordPress 网站制作一个自定义的成员(member)数据报告。我需要包含在报告中的一些字段存储在 wp_usermeta 表中,但是当我遍历每个成员以检索该数据时,它最终会超时。

我目前正在使用 get_user_meta(),因为它似乎比手动执行查询更快,但它仍然会超时。大约有 5,600 个用户需要处理。它可以很好地通过其中的 4000 个,但如果我尝试在整个集合上运行它,它不可避免地会超时。有一个更好的方法吗?有没有办法从 wp_usermeta 表中提取批量数据,而不是为每个用户单独提取数据?我想可能会尝试在一个查询中拉下整个 usermeta 表并使用 PHP 来操作它,但是该表中有超过 540,000 行...

这是我目前所处的位置...

 require_once( "db_connection.php" );
require_once( "../wp-config.php" );
$q = "SELECT ID,user_login,user_email,last_login,display_name FROM wp_users WHERE user_email='' ORDER BY user_login ASC;";
$r = mysql_query( $q );
$members = array();
while ( $member = mysql_fetch_array( $r ) ) {
$usermeta = get_user_meta($member['ID']);
$members[$member['ID']] = $member;
$members[$member['ID']]['meta'] = $usermeta;
}

echo "<pre>\n";
var_dump( $members );
echo "</pre>\n";

非常感谢您的帮助/建议!

最佳答案

好吧,我尝试了“下拉所有内容”的方法,它似乎没有超时就可以工作。这是我修改后的方法:

 require_once( "db_connection.php" );
require_once( "../wp-config.php" );
$q = "SELECT ID,user_login,last_login,display_name FROM wp_users WHERE user_email='' ORDER BY user_login ASC;";
$r = mysql_query( $q );
$members = array();
while ( $member = mysql_fetch_array( $r ) ) {
$members[$member['ID']] = $member;
}

$q = "SELECT * FROM wp_usermeta WHERE (meta_key='first_name' OR meta_key='_slt_middle_initial' OR meta_key='last_name' OR meta_key='_slt_email2' OR meta_key='_slt_email3');";
$r = mysql_query($q);
while ( $usermeta = mysql_fetch_array( $r ) ) {
if ( $members[$usermeta['user_id']]['ID'] != "" ) {
$members[$usermeta['user_id']][$usermeta['meta_key']] = $usermeta['meta_value'];
}
}

echo "<pre>\n";
var_dump( $members );
echo "</pre>\n";

get_user_meta() 对批量数据不起作用太糟糕了 - 如果我们可以将我们想要的 ID 和字段数组传递给它,然后得到一个多维数组,那就太好了......但我想这种方式暂时可行,只是有点麻烦。

关于php - WordPress get_user_meta() - 是否有更好的方法来提取大量用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com