Домой Wp-Recall WP-Recall: Вопросы и ответы Вывод шорткода во вкладке
7ответ(ов) в теме
Андрей Помогу
не в сети 2 года
На сайте с 18.07.2016
Участник
Тем 19
Сообщения 112
1
22:15

Здравствуйте.

Подскажите, пжл, как реализовать вывод дополнительных полей профиля во вкладке в нужном мне виде?

Идея такая - предоставить возможность всем пользователям сайта размещать рекламный баннер у себя в ЛК. Для этого я создал 2 поля профиля типа "ссылка": в первом поле пользователь прописывает ссылку на ресурс, во втором поле - ссылку на баннер. Теперь, получая эти данные с помощью шорткодов типа {RCL-UM:usermeta_key}, я в поле вкладки прописываю такой html -код:

<code><a href="{RCL-UM:usermeta_key_Ссылка_на_ресурс}"><img src="{RCL-UM:usermeta_key_Ссылка_на_изображение}"></a></code>

и по идее должен получится вывод баннера, кликая на который должен происходить переход на рекламируемый ресурс.НО

в результате выводятся просто кликабельные ссылки одна за другой.

Подскажите, пожалуйста, что я делаю не так и как это можно довести до ума?

0
Вова (Otshelnik-Fm)
не в сети 10 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
2
01:28

Здравствуйте.

Действительно. Все дело в том, что каждое из значений завернуто при выводе в тег span. т.е. оно выводится не plain текстом, а уже содержит верстку.

Как сделал я - я не использовал в полях профиля тип "ссылка". А использовал просто "текстовое поле"

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

Все так же как и вы создал два поля для ввода юзером значения. Обратите внимание что я нигде его не выбрал к выводу.

А потом я просто зарегистрировал новый шорткод. Его в произвольной вкладке и вписал

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

Сам шорткод:

// возьмем из поля профиля ссылку и картинку и выведем шорткод в произвольной вкладке
function otfm_user_adver_func(){
    global $rcl_office;             // чей кабинет. id
    if(!$rcl_office) return false;  // вообще не кабинет
    
    $target = get_user_meta( $rcl_office, 'link_64', true );        // ссылка
    $img    = get_user_meta( $rcl_office, 'kartinka_68', true );    // картинка
    
    if( empty($target) || empty($img) ) return false; // что-то из этого не заполнено
 
    $link = '<a href="'.$target.'">';
        $link .= '<img src="'.$img.'">';
	$link .= '</a>';
    
    return $link;
}
add_shortcode('otfm_user_adver', 'otfm_user_adver_func');

link_64 и kartinka_68 в коде - замените на свои значения Meta-Key полей профиля

Результат

Вы не можете просматривать опубликованные ссылки
2
Андрей Помогу
не в сети 2 года
На сайте с 18.07.2016
Участник
Тем 19
Сообщения 112
3
10:31

Супер! Всё получилось.

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

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

0
Вова (Otshelnik-Fm)
не в сети 10 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
4
10:38

Никак не промодерируете.

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

1
Андрей Помогу
не в сети 2 года
На сайте с 18.07.2016
Участник
Тем 19
Сообщения 112
5
10:51

Понятно.

Пытаюсь придумать что-то оригинальное:)

Но, огромное спасибо, за Вашу поддержку. 8)

1
Андрей Помогу
не в сети 2 года
На сайте с 18.07.2016
Участник
Тем 19
Сообщения 112
6
10:56

А можно поля профиля, где вводятся ссылки, сделать доступными для заполнения только администрацией?

0
Вова (Otshelnik-Fm)
не в сети 10 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
7
11:29

Есть же опция для админа в полях профиля.
Основной вопрос решен. Закрыто

1
Тема закрыта. Публикация новых сообщений запрещена.