Домой Wp-Recall WP-Recall: Вопросы и ответы Дублировать поле "Метки" в форме публикации
3ответ(ов) в теме
Bab
не в сети 6 лет
На сайте с 28.02.2019
Участник
Тем 2
Сообщения 3
1
19:55
Версия WP-Recall: 16.17.7

Здравствуйте.
Хочу продублировать поле "Метки" на странице публикации. Функционал будет такой же, только поиск по другим данным.
Можно ли это сделать через хуки плагина?
Т.е. нужно поле "Метки2", в которое вместо action: rcl_get_like_tags подставлю свой поиск rcl_get_like_users.
Спасибо

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

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

Тему перенес. Это не проблема плагина, а ваша задача.

Такой возможности нет. Поле поиска только у меток.

Под вашу задачу потребуется помощь программиста и своя реализация

0
Андрей CS
не в сети 1 день
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
3
20:52

Сначала читаем статью по теме

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

там подробно описан функционал произвольных полей плагина.
Далее добавляем через фильтр rcl_default_public_form_fields произвольное дефолтное поле типа custom:

add_filter('rcl_default_public_form_fields', 'add_custom_default_field_for_public_form', 10, 2);
function add_custom_default_field_for_public_form($fields, $post_type){
    
	//тут указываем свой тип записи 
	//или удаляем, если нужно для всех типов
    if($post_type != 'post') return $fields;

    $fields[] = array(
        'type' => 'custom',
        'slug' => 'my-field',
        'title' => 'Мои Метки'
    );

    return $fields;
 
}

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

add_filter('rcl_public_form_fields', 'filter_my_custom_field_in_public_form', 10, 2);
function filter_my_custom_field_in_public_form($fields, $form){
    global $user_ID;
    
	//тут указываем свой тип записи 
	//или удаляем, если нужно для всех типов
    if($form->post_type != 'post') return $fields;

    foreach($fields as $k => $field){
        
        if($field['slug'] != 'my-field') continue;

			$fields[$k]['content'] = 'тут контент, который хотим вывести '
						. 'в форме публикации на месте этого поля';
   
        }
        
    }

    return $fields;
 
}

вам надо будет засунуть в значение ячейки content массива поля нужный контент, можно туда поместить все что угодно, в том числе форму, которая вам нужна, код формы находится в файле /wp-content/plugins/wp-recall-trunk/add-on/publicpost/classes/class-rcl-public-form.php со строки 680. Можете скопировать код формы, заменить в тем функцию куда будут отправляться данные и разместить этот код в content поля в коде выше.
Все.

Редакции сообщения
20.04.2019 20:52Андрей CSПричина: не указано
1
Вы не имеете права на публикацию сообщений в этой теме