Просмотр общего количества медиафайлов, добавленных пользователем

Я создал функцию, которая возвращает общее количество медиафайлов, загруженных пользователем, но я хотел бы видеть количество медиафайлов, загруженных пользователем, вошедшим в систему ($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 (); ?

Немного запутался... вы написали функцию, но не знаете, как передать в нее значение? $total = um_galleria_get_photos_count(get_current_user_id ());

Tim Morton 30.04.2019 05:13

Привет, спасибо за ответ. Извините, но я плохо говорю по-английски и неправильно объяснила. Функция уже есть в скачанном плагине (тот, что написан выше), но она не делает того, что я хочу. Я хотел бы, чтобы user_id всегда вызывал user_id пользователя, который вошел в систему, и я не знаю, как изменить функцию. Надеюсь, я был более точен. Спасибо.

user9942237 30.04.2019 09:30

Я не знаком с WordPress, но функция принимает любого пользователя, если вы ей отправите, поэтому вы сможете передать ей любой идентификатор пользователя. Поскольку get_current_user_id() возвращает идентификатор вошедшего в систему пользователя, фрагмент кода в моем предыдущем комментарии должен работать. Если мое небольшое исследование было точным...

Tim Morton 30.04.2019 19:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Медиа — это своего рода тип сообщения, поэтому вы можете использовать сообщения 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?

Naser Nikzad 30.04.2019 06:49

Проверено на Wordpress 5.1

Khalil DaNish 30.04.2019 06:52

Мне понравилось то, что это не запускает какой-либо запрос напрямую, а просто использует существующие методы, такие как get_posts()

Top-Master 30.04.2019 07:09

Привет, спасибо за ответы. Извините, я плохо говорю по-английски и неправильно объяснила. Функция уже есть в скачанном плагине (тот, что написан выше), но она не делает того, что я хочу. Я хотел бы, чтобы user_id всегда вызывал user_id пользователя, который вошел в систему, и я не знаю, как изменить функцию. Надеюсь, я был более точен. Спасибо.

user9942237 30.04.2019 09:31

поэтому просто переопределите идентификатор пользователя. добавьте это ( $user_id = get_current_user_id(); ) вверху функции, чтобы переопределить переменную user_id, она всегда получает текущий идентификатор пользователя, вошедшего в систему. просто помните, что имя переменной должно совпадать с параметром.

Khalil DaNish 30.04.2019 09:37

Спасибо за ваш ответ. Я пытался, но это не работает. Если я вхожу в систему с пользователем, который загрузил 3 фотографии (например), он мне ничего не показывает.

user9942237 30.04.2019 10:00

используйте die() и отлаживайте его в каждой части этой функции, но сначала убедитесь, что вы находитесь в правильном файле, и это правильная функция для редактирования. также убедитесь, что идентификатор пользователя в этой таблице сильно отличается от идентификатора пользователя в таблице WP_user.

Khalil DaNish 30.04.2019 11:16

Другие вопросы по теме