Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Не поменять данные вкладки при помощи rcl_tab
11ответ(ов) в теме
Ivan.Karpushchenko
не в сети 7 лет
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 5
1
22:25
Версия WP-Recall: 16.7.4

Привет! Отличный плагин, сильно выручает!
Но есть проблемка.
В одной из вкладок я вывожу данные плагина WP Front End PM. Где-то у названия вкладки хочу выводить количество сообщений. Выводить их в другом месте я могу без проблем, но мне нужно здесь - в списке вкладок.

Я использую

Вы не можете просматривать опубликованные ссылки

руководство, но у меня просто исчезает изменяемая вкладка.
Для теста я пытаюсь изменить иконку вот так:

add_filter('rcl_tab','edit_profile_tab_data');
function edit_profile_tab_data($data){
    if($data['id']!='message') return $data;
    // print_r($data);
    $data['icon'] = 'fa-bell-o';
    $data['content'][0]['icon'] = 'fa-bell-o'; // не важно, где я пытаюсь менять код - всегда результат один
    // print_r($data); вижу изменения
}

Что можно сделать?

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
22:57

Здравствуйте.
Вы говорите о кол-ве сообщений, а приводите код которым меняете иконку. Да и то в конце кода вы ничего не возвращаете.
Но чтобы поменять иконку - не нужно лезть в коды. Она меняется в админке - в менеджере вкладок
Что вы хотите сделать?

0
Ivan.Karpushchenko
не в сети 7 лет
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 5
3
02:16

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

У меня есть функция, которая может возвращать количество новых сообщений ( при отсутствии сообщений она ничего не возвращает).
Я хочу где-то (например, рядом с названием вкладки) выводить результат этой функции, он всегда разный.
Но даже иконку через функции поменять мне не получается.
Имя вкладки ([name]) я тоже пробовал менять - никак.

Мой код написан неверно или в чём-то еще ошибка?

Статья, которую я скинул, датирована 2015 годом, может что-то изменилось в плагине за это время?

Заранее спасибо.

0
Андрей CS
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
4
07:36

для начала скиньте свой корректный код, которым вы пытаетесь добиться цели, а то ваш код "для теста" не выдерживает никакой критики.

Ivan.Karpushchenko сказал(а)
В одной из вкладок я вывожу данные плагина WP Front End PM

каким образом эти данные выводятся?

0
Ivan.Karpushchenko
не в сети 7 лет
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 5
5
11:55

Я же скинул код, что именно в нём не выдерживает критики?
Скопированный пример из вашей статьи точно так же не приносит результата.
Функция и эдд_фильтр размещены в functions.php

Андрей CS сказал(а)
каким образом эти данные выводятся?

Функция возвращает пустую строку или число.

Вопрос - можно ли таким способом, как описан в статье, влиять на отображение вкладки?

0
Андрей CS
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
6
12:09

Ivan.Karpushchenko сказал(а)
Я же скинул код, что именно в нём не выдерживает критики?

код не рабочий, что тут не понятно? функция должна возвращать массив.

Ivan.Karpushchenko сказал(а)
Скопированный пример из вашей статьи точно так же не приносит результата.

в статье примеры рабочие, какой не заработал?

Ivan.Karpushchenko сказал(а)
Вопрос - можно ли таким способом, как описан в статье, влиять на отображение вкладки?

можно

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
7
12:28

add_filter('rcl_pre_output_tab'
- этот фильтр используйте. Он срабатывает перед самым выводом

1
Ivan.Karpushchenko
не в сети 7 лет
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 5
8
21:09

в статье примеры рабочие, какой не заработал?

add_filter('rcl_tab','edit_profile_tab_data');
function edit_profile_tab_data($data){
    if($data['id']!='profile') return $data;
    //изменим иконку на кнопке вкладки, указав нужный класс отсюда http://fontawesome.io/icons/
    $data['icon'] = 'fa-music';
    //сделаем вкладку доступной для всех
    $data['public'] = 1;
    //изменим название вкладки
    $data['name'] = 'Личные данные';
    return $data;
}

Не понимаю, чем существенно мой код отличается от этого.

И этот код не работает.

Кстати, мой код возвращает массив

0
Ivan.Karpushchenko
не в сети 7 лет
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 5
9
21:13

Ivan.Karpushchenko сказал(а)
Не понимаю, чем существенно мой код отличается от этого.

Ну да, я заметил, что скинул вам без return кусок кода. С ним почему-то тоже не работало

rcl_pre_output_tab - помогло, вопрос решил. Спасибо!

0
Андрей CS
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
10
21:17

Ivan.Karpushchenko сказал(а)
И этот код не работает.

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

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
11
21:49

Если вы разрабатываете под WP-Recall я вам посоветую свою подборку

Вы не можете просматривать опубликованные ссылки

Например создать свою вкладку в ЛК с счетчиком можно по этому руководству

Вы не можете просматривать опубликованные ссылки

оттуда перейти к описанию функции

Вы не можете просматривать опубликованные ссылки

- а она имеет в своем составе поддержку аргумента 'counter'=> - (рейтинг, подписчики - они работают с этим счетчиком)

0
Вы не имеете права на публикацию сообщений в этой теме