@l_white_noise_ll

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

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

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

$args = array(
	'user_id' => $curauth->ID,
	'count'   => true,
	'status'   => 'approve',
);
$count = get_comments( $args );
echo $count
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Мои работы: otshelnik-fm.ru
Вариант в 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы