Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Работаем с Wp-Recall

Для этого урока вы должны знать: что такое шаблоны WP-Recall (templates).
Знания html,css и основы php (понимать синтаксис) - также будут дополнительным плюсом.

Содержание:

 


 

Введение

В этом уроке мы рассмотрим код и работу с шаблоном user-rows.php, который вы можете найти по адресу:
ваш-сайт/wp-content/plugins/wp-recall/templates/user-rows.php

Этот шаблон используется в шорткоде userlist - выводит список пользователей. И он же используется в блоке автора (после публикации), под записью - имейте это ввиду. Так что если вы его измените - поменяется вывод в обоих местах. Это надо учитывать.

Что будем менять? К примеру вам не нужно выводить всю массу полей профиля, а нужно вывести лишь некоторые поля. Или наоборот - дополнить своими данными. Или что-то скрыть.

Внимание: все действия по изменению шаблона надо проводить при отключенном кешировании WP-Recall. Проверьте что кеш в настройках отключен: "WP-Recall" -> "Настройки" -> "Общие настройки" (галка "Advanced settings" должна быть включена) -> "Кеширование" -> "Кеш" -> "Отключено"


 

Структура файла user-rows.php

Откроем файл-шаблона и посмотрим что он содержит (кликабельно):

На скриншоте видим, что функция rcl_user_description(); выводит нам всю основную информацию. Поэтому если мы ее уберем - то не увидим ни статуса, ни статистики (счётчики) комментариев и созданных тем и не увидим поля профиля - что выводит плагин и его дополнения.
Внутри этой функции работает хук do_action('rcl_user_description'); - на него функции и вешают свой вывод.
Поэтому если вам нужно что-то вывести под статусом и ниже - используйте этот хук - поменяв лишь его приоритет в 3-м аргументе.


 

Как убрать статус:

Для этого придется редактировать шаблон. Надо убрать в шаблоне user-rows.php функцию rcl_user_description(); - т.к. она вызывает статус (и в ней же указан вызов хука "rcl_user_description"). Просто замените эту функцию в шаблоне - вызовом хука do_action('rcl_user_description'); - этот экшен вписывать обязательно. Чтобы все функции, что его используют, выводили свои данные.


 

Как убрать счетчики:

Здесь нам не надо копировать шаблон user-rows.php и вносить в него изменения. Все сниппеты будем вписывать в файл функций вашей активной ВП темы.

Что можем отключить:

Отключим комментарии:

 

Отключим публикации:

 

Отключим дату регистрации:

 

Весь блок полей профиля убирается так:

- вы можете это использовать, если решили переписать только его вывод - убрали этот блок и построили свой вывод со своей версткой и наименованиями.
Важное замечание: если вы в админке: "WP-Recall" -> "Поля профиля" -> "отображать для других пользователей" ставите "Да", только тогда это поле профиля будет выводиться в этом блоке.
Подробнее о полях профиля тут


 

Большая кастомизация! Выведем всё сами:

Отключим весь блок информации об авторе и выведем всё самостоятельно:

Для этого придется редактировать шаблон. Убирайте вызов функции rcl_user_description(); в шаблоне user-rows.php и выводите любую информацию используя api WordPress.

Но тут вы должны сами отвечать за свои действия - т.к. убрав эту функцию, все поля что дополнения выводили там автоматически - придется вам выводить вручную. Подумайте несколько раз, прежде чем так редактировать шаблон - чтобы потом не приходили на форум за поддержкой и не говорили - "ой, у меня там возраст не выводится" или "награды"...

 

Для вывода данных о пользователе вы должны знать его метакей - при создании полей профиля в админке вашего сайта meta-key вам уже показан:

В коде шаблона есть две глобальные переменные:
global $rcl_user,$rcl_users_set; - они уже содержат некоторые данные юзера (данные из полей профиля что созданы - но только при условии что там вы поставили их как "отображать для других пользователей")

Содержимое $rcl_user

 

- т.е. вы можете уже начать выводить любые из них. Надо лишь чуток знаний по php. Но этот вопрос выходит за рамки этого мануала.
Вторая переменная: $rcl_users_set содержит не очень интересные данные - если интересно - распечатайте ее и посмотрите ее содержимое.

Те данные, что вы запретили к выводу в админке (настраивая поля профиля) вы можете выводить используя ВП функцию get_user_meta() - там в описании сказано: что вы можете получить все поля у юзера, так и одно, указав точно какое (metakey).

Пример 1:

Нам надо получить пол пользователя - на скриншоте выше у него метакей pol_19
Впишем в шаблон:

 

и получим пол пользователя:

- незаполненные поля будут пустыми. Вы можете использовать свою верстку, менять свой порядок полей, показывать пустые поля с надписью "не указано" или не выводить их вовсе.

Пример 2:

так можно делать проверку что поле не заполнено и выводить надпись:

 

результат:

этот пример показывает как можно при отключенной опции в настройках полей: "отображать для других пользователей" - вписать к выводу любой метакей.

Пример 3:

Получим множественное значение - например у меня в полях это языки программирования которыми владеет пользователь - он может выбрать их несколько к выводу:
У меня Meta-key с именем t_81

Выведем это поле:

 

- во второй строке мы не указываем 3-й аргумент - т.к. нам надо получить не одно значение, а массив.

4-я строка - проверка что данные есть.
5-я строка: данные разбиваем разделителем - запятой.
7-я строка - уже знакома нам по прошлому примеру - чтобы указать пустое значение как "Не указано"
Ну и на 8-й строке выводим, вначале выполнив перевод на новую строку.

И мы увидим (включая прошлый вывод) результат:

Пример 4:

Выведем поле только если оно заполнено.
Рассмотрим на примере получения поля профиля "День рождения". Если заполнено - мы его выведем, а если не заполнено - выводить вообще не будем.

 

- во 3-й строке и проверяем в условии - переменная не пустая - значит выведем. Тут всё просто.

Пример 5. Финальный штрих:

Давайте жирным выведем наши заголовки из 3-х примеров, финальный штрих так сказать

Результат:

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

И исходник шаблона выглядит так:

Мы разобрали как действовать: когда мы полностью блок отключали в шаблоне; или как выводить: когда в настройках поля профиля стоит опция "отображать для других пользователей" -> "Нет"

 


 

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

Тут все просто - оформляете ваш код в функцию, а её вешаете на хук rcl_user_description. Третий аргумент - установите меньше 10-ти ваш вывод будет выше, передав в него 30-ть выведите в самом низу.

Рассмотрим на примере произвольного поля Интересы:

 

- сниппет для файла функций - похожий код мы рассматривали выше.

Результат:

- т.е. указав "30" в последнем аргументе - мы получили вывод в самом низу, после полей профиля.


Надеюсь урок по кастомизации этого шаблона был полезен. Если есть что дополнить - пишите в комментариях.

Если у вас возникли проблемы при работе с этим шаблоном - создавайте новую тему на форуме и ссылайтесь на этот мануал. На форуме будем решать индивидуально что вы делаете и в чем проблема.

5

Автор публикации

не в сети 12 часов

Otshelnik-Fm

1 756

https://otshelnik-fm.ru/?p=3593
- Бесплатная книга "WP-Recall для новичка"

Подписывайся на выход книги и не пропусти!

Комментарии: 1470Публикации: 172Регистрация: 27-01-2013Продаж/Покупок: 9357/228