【发布时间】:2021-12-03 23:37:12
【问题描述】:
第一次在子站点上激活某个插件时,我需要将某些数据从 wp_usermeta 复制到新表中。到目前为止,我可以按预期打印 $admin_ids,但不知道如何或是否可以在 SQL 的 IN 语句中使用这些值。到目前为止,还没有使用以下方法创建表。
问题是,如何正确编写此 SQL 查询,以便在函数运行时,基于 wp_usermeta 表创建一个新表,其中当前博客管理员的 ID 等于 wp_usermeta.user_id。
当我运行该函数时,我没有收到任何错误、警告或通知,wp 只是永远停止。
这是我的代码。
function create_blog_usermeta_table(){
if(function_exists('other_plugin_function')){
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
// WP_User_Query arguments
$args = array(
'role' => 'Administrator',
'fields' => 'ID'
);
// The User Query
$user_query = new WP_User_Query( $args );
// Get the results
$admins = $user_query->get_results();
//Extract and format admin ids from the results
$admin_ids = wp_list_pluck( $admins, 'ID', 'ID');
$admin_ids = implode( ',', $admin_ids );
$usermeta_table = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}_usermeta AS
SELECT *
FROM wp_usermeta
Where user_id IN ($admin_ids)";
}
}
【问题讨论】:
-
那么你打算用 $usermeta_table 做什么