Я создал функцию, которая возвращает общее количество медиафайлов, загруженных пользователем, но я хотел бы видеть количество медиафайлов, загруженных пользователем, вошедшим в систему ($user_ID = get_current_user_id ();)
Мой код:
function um_galleria_get_photos_count( $user_id = 0 )
{
global $wpdb;
$count = $wpdb->get_var(
$wpdb->prepare(
"SELECT COUNT(id) FROM {$wpdb->prefix}um_galleria WHERE user_id=%d",
$user_id
)
);
return $count;
}
Как взять из базы данных общее количество мультимедийного контента, загруженного подключенным пользователем $user_ID = get_current_user_id (); ?
Привет, спасибо за ответ. Извините, но я плохо говорю по-английски и неправильно объяснила. Функция уже есть в скачанном плагине (тот, что написан выше), но она не делает того, что я хочу. Я хотел бы, чтобы user_id всегда вызывал user_id пользователя, который вошел в систему, и я не знаю, как изменить функцию. Надеюсь, я был более точен. Спасибо.
Я не знаком с WordPress, но функция принимает любого пользователя, если вы ей отправите, поэтому вы сможете передать ей любой идентификатор пользователя. Поскольку get_current_user_id() возвращает идентификатор вошедшего в систему пользователя, фрагмент кода в моем предыдущем комментарии должен работать. Если мое небольшое исследование было точным...






Медиа — это своего рода тип сообщения, поэтому вы можете использовать сообщения WP_query. У меня есть этот код, который работает для меня, попробуйте один раз.
if (is_user_logged_in()) {
$user_id = get_current_user_id();
$args = array(
'post_type' => 'attachment',
'author' => $user_id,
'posts_per_page' => -1 // no limit
);
echo count(get_posts($args));
}
если вы получаете данные из пользовательской таблицы или таблиц плагинов, просто переопределите параметр user_id на текущий идентификатор пользователя, вошедшего в систему. В вашем случае просто переопределите ответ
function um_galleria_get_photos_count( $user_id = 0 )
{
$user_id = get_current_user_id();
global $wpdb;
$count = $wpdb->get_var(
$wpdb->prepare("SELECT COUNT(id) FROM {$wpdb->prefix}um_galleria WHERE user_id=%d", $user_id));
return $count;
}
Поддерживается ли это в последней версии WordPress?
Проверено на Wordpress 5.1
Мне понравилось то, что это не запускает какой-либо запрос напрямую, а просто использует существующие методы, такие как get_posts()
Привет, спасибо за ответы. Извините, я плохо говорю по-английски и неправильно объяснила. Функция уже есть в скачанном плагине (тот, что написан выше), но она не делает того, что я хочу. Я хотел бы, чтобы user_id всегда вызывал user_id пользователя, который вошел в систему, и я не знаю, как изменить функцию. Надеюсь, я был более точен. Спасибо.
поэтому просто переопределите идентификатор пользователя. добавьте это ( $user_id = get_current_user_id(); ) вверху функции, чтобы переопределить переменную user_id, она всегда получает текущий идентификатор пользователя, вошедшего в систему. просто помните, что имя переменной должно совпадать с параметром.
Спасибо за ваш ответ. Я пытался, но это не работает. Если я вхожу в систему с пользователем, который загрузил 3 фотографии (например), он мне ничего не показывает.
используйте die() и отлаживайте его в каждой части этой функции, но сначала убедитесь, что вы находитесь в правильном файле, и это правильная функция для редактирования. также убедитесь, что идентификатор пользователя в этой таблице сильно отличается от идентификатора пользователя в таблице WP_user.
Немного запутался... вы написали функцию, но не знаете, как передать в нее значение?
$total = um_galleria_get_photos_count(get_current_user_id ());