Как получить количество сообщений пользовательского запроса в WordPress? - PullRequest
0 голосов
/ 10 декабря 2018

Когда я пытаюсь получить количество записей пользовательского запроса в WordPress, я получаю следующую ошибку в качестве вывода.

Warning: array_map(): Argument #2 should be an array in /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-includes/class-wp-query.php on line 1918

Warning: implode(): Invalid arguments passed in /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-includes/class-wp-query.php on line 1918
0

Итак, моя функция ниже:

   if( !function_exists('my_likes') ){
    function my_likes() {
      global $current_user;
      $current_user = get_current_user_id();
       // The Query
      $args = array(
        'meta_key' =>'likes_count',
        'orderby' => 'date',
        'post__in' => $current_user
       );
       $obj_name = new WP_Query($args);
       $num = $obj_name->post_count;
       print $num;
       }
     add_action('my_likes', 'my_likes');
    }

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Неверная строка 'post__in' => $current_user, post__in должен быть массивом, поэтому, если вы хотите использовать его таким образом, вам нужно будет сделать 'post__in' => array($current_user)

Также из контекста я не уверен, что вы хотитечтобы использовать эту строку вообще, если вы хотите считать сообщения, опубликованные пользователем, идентифицированным $ current_user, тогда вместо 'post__in' => $current_user вы должны использовать 'author' => $current_user

BTW.строка global $current_user; там вообще не нужна и переопределяет глобальное значение $ current_user.

Полный код должен выглядеть следующим образом, я думаю

function my_likes() {
  $current_user = get_current_user_id();
   // The Query
  $args = array(
    'meta_key' =>'likes_count',
    'orderby' => 'date',
    'post__in' => array($current_user),
    // or 'author' => $current_user
   );
   $obj_name = new WP_Query($args);
   $num = $obj_name->post_count;
   print $num;
 }
0 голосов
/ 10 декабря 2018
count($obj_name->posts)

Это неэффективный способ подсчета сообщений пользователя, поскольку он получает весь объект сообщения.Возможно, просто используйте сырой SQL-запрос

...