Показать сообщения всех сообщений пользователя post_meta

Я ищу в Интернете последние 3 часа без успеха.

У меня есть веб-сайт, на котором авторы могут публиковать сообщения, а просмотры сообщений отслеживаются с помощью postmeta «post_views_count».

Я использую этот код и работает, но покажу мне счет только для первых 5 сообщений, а не для всех сообщений автора. Это код?

global $wp_query; $author_id = get_current_user_id(); $author_posts = get_posts( array('author' => $author_id) ); $counter = 0; // needed to collect the total sum of views foreach ( $author_posts as $post ) { $views = absint( get_post_meta( $post->ID, 'post_views_count', true ) ); var_dump($views); $counter += $views; } echo "{$counter}"; 

Что не так? Зачем показывать мне только 5 сообщений? большое спасибо

Он показывает вам первые 5 сообщений, потому что это количество сообщений на странице 1, и вы никогда не говорили ему, сколько сообщений на странице загружается, поэтому оно использовало сообщения по умолчанию на странице, заданные в настройках.

Вы хотите изменить вызов posts_per_page параметром posts_per_page .

Однако я остановлюсь на следующих проблемах:

  • get_posts не get_posts способ WP_Query , переключение на использование WP_Query будет более эффективным
  • Сохранение количества просмотров внутри столбца meta невероятно неэффективно и замедляет загрузку страниц
  • Ваши статистические данные ненадежны, так как у вас теперь есть условия гонки, когда более одного человека посещает страницу, что может привести к дефлированным значениям (обновления просмотра страниц не являются атомарными)
  • Больше не возможно кэшировать ваши страницы, и любая попытка кэширования страниц испортит вашу статистику
  • Вместо echo "{$counter}"; вы должны просто использовать echo $counter;
  • Вы почти наверняка захотите сохранить счетчик просмотров и кешировать его, WordPress уже поддерживает количество сообщений для категорий терминов и типов сообщений, просмотры страниц в почтовой мета еще более дороги
  • Не объявляйте, что вы никогда не собираетесь использовать, я смотрю global $wp_query;

Вместо этого рассмотрите возможность использования существующего пакета статистики, например, API Google Analytics, статистики Jetpack или показателя, например, количества комментариев, твиттер-ретвитов или акций fb