允许选定用户的配置文件HTML

时间:2013-03-20 作者:Brooke.

我知道有很多关于如何在配置文件中允许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
      }
  }

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

您可以挂接早期操作并为您的用例应用过滤器:

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 在所有默认管理页面中运行(即,未由第三方添加),并在文件中声明/wp-admin/admin.php.

$pagenow 是在给定时刻运行的PHP页面。因此,以页面为目标/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\' );    
}

结束

相关推荐

Security updates to 3.3.2

我知道所有的安全更新都很重要,但从1到10的范围来看,从3.1.3升级到3.3.2有多重要。我有一些网站需要升级,但主机将我锁定在一个旧版本的php中,限制我使用3.1.3。我目前正在运行php的5.2.3版本。谢谢Bart