Разрешить HTML-профиль для избранных пользователей

Я знаю, что есть тонна сообщений о том, как разрешить 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 } } 

Solutions Collecting From Web of "Разрешить HTML-профиль для избранных пользователей"

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

 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'); } 

load-$pagenow крючок – load-$pagenow работает на всех страницах администрирования по умолчанию (т. load-$pagenow Не добавляется третьей стороной), и объявляется в файле /wp-admin/admin.php .

$pagenow – это страница PHP, работающая в данный момент. Итак, чтобы настроить таргетинг на страницу /wp-admin/user-edit.php?user_id=2 , /wp-admin/user-edit.php?user_id=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' ); }