@l_white_noise_ll

Количество комментариев пользователя вордпресс на странице author?

Привет всем.
Как лучше всего выводить количество комментов пользователя, на его странице author ?

В целом у меня есть один вариант и он работает, но хотел уточнить, вдруг есть более толковый вариант.

$args = array(
	'user_id' => $curauth->ID,
	'count'   => true,
	'status'   => 'approve',
);
$count = get_comments( $args );
echo $count
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Вариант в 1-ну строку:

echo get_comments( [ 'user_id' => $curauth->ID, 'count' => true, 'status' => 'approve' ] );


ну а если без шуток - что может быть лучше того, что работает на родном апи, кешируется его нутром и пишется в одну строку?

Врядли элегантней решение найдёте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@l_white_noise_ll Автор вопроса
Может кому пригодится такое решение на будущее. Сделал удобнее, чтобы не плодить кучу кода, если у вас профиль хитровыточенный и надо выводить не в одном месте и вообще структура профиля мудреная и вывод числа комментов как у меня используется для рейтинга.

А может кто предложит решение лучше. Короче пусть будет. Я все это делаю без особых знаний в php так сказать. Не без помощи конечно, но старюсь не наглеть и если решение не могу найти долгое время, то спрашиваю у людей, как сделать.

<?php
  if(isset($_GET['author_name'])) :
    $curauth = get_userdatabylogin($author_name);
  else :
    $curauth = get_userdata(intval($author));
  endif;
 
$args = array(
	'user_id' => $curauth->ID,
	'count'   => true,
	'status'   => 'approve',
);
$commratings = get_comments( $args );
?>


И тегом в нужном месте профиля

<?php echo $commratings ?>

Этот вариант выводит количество комментериев пользователя в кастомном профиле, который выводится в site.ru/author/user/ даже если у пользователя нет статей, при условии, что вы настроили его до этого. И так же работает в стандартном варианте site.ru/author/user/

Вот эта часть кода, она дает возможность корректно отображать и выводить на страницу site.ru/author/user/ разную инфу типа имя, аватар и все что захотите, если у пользователя нет статей.

if(isset($_GET['author_name'])) :
    $curauth = get_userdatabylogin($author_name);
  else :
    $curauth = get_userdata(intval($author));
  endif;


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

<div class="author-box-personal">
<div class="author-box__ava">
<?php $avatar_url = get_avatar_url($curauth->ID, array("size"=>70)); ?>
<img src="<?php echo $avatar_url; ?>" width="70" height="70" alt="<?php echo $curauth->nickname;?>" class="avatar">
</div>
<div class="author-box__body">
<div class="author-box__author-personal">
<?php echo $curauth->first_name;?><em>/ профиль</em>
</div>
</div>
</div>


Ну и пару скринов как это все выглядит у пользователя у которого есть статьи и нет статей. Рейтинги пока тестовые по оформлению. Чисто наброски проверить работоспособность.
5f94a23b58110036174364.png

Кастомный профиль

5f94a24419f3c306850952.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы