Фильтры: Разрешить Html-Код Профиля Для Избранных Пользователей.

  • Автор темы Alexanderbara
  • Обновлено
  • 22, Oct 2024
  • #1

Я знаю, что существует множество сообщений о том, как разрешить использование HTML в профилях. Большинство из них предупреждают об угрозе безопасности, связанной с этим. Я считаю, что должен быть способ разрешить пользователям использовать HTML только для определенных пользователей. Я попробовал это, но это не работает. Я думаю, это потому, что нельзя вынуть фильтр изнутри фильтра. Любая помощь была бы потрясающей.

 add_action('edit user profile update', 'nifty_strip_html');

function nifty_strip_html($user_id) {

if ($user_id == 2){

//if user id is 2 then allow html

remove_filter('pre_user_description', 'wp_filter_kses');

}

else{

return; //keep the filtered html

}

}
 

#фильтры #безопасность #профили

Alexanderbara


Рег
02 Dec, 2006

Тем
75

Постов
200

Баллов
595
  • 25, Oct 2024
  • #2

Вы можете подключиться к раннему действию и применить фильтр для вашего варианта использования:

 
 add_action( 'load-user-edit.php', 'callback_function' );

function allow_user_html_wpse_91564()
{        

if( isset( $_REQUEST['user_id'] ) && '2' == $_REQUEST['user_id'] )

remove_filter( 'pre_user_description', 'wp_filter_kses' );    
}
 

Крючок /wp-admin/user-edit.php?user_id=2 запускается на всех страницах администрирования по умолчанию (т. е. не добавляется третьей стороной) и объявляется в файле $pagenow .

/wp-admin/admin.php is the PHP page running at a given moment. So, to target the page load-$pagenow , нужен еще один хук, а также еще одна проверка условий:

add_action( 'load-profile.php', 'allow_profile_html_wpse_91564' ); function allow_profile_html_wpse_91564() { global $current_user; if( '2' == $current_user->ID ) remove_filter('pre_user_description', 'wp_filter_kses'); }
 

Nickx


Рег
06 Sep, 2007

Тем
79

Постов
206

Баллов
621
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно