管理者以外の権限で特定のhtmlタグを更新するとタグが消える問題

どうもsawayaです。

先日、管理者(Administrator)以外のアカウントで特定の固定ページを更新できるようにした際に、テキストエディタの本文中に記述していた特定のタグ(scriptなど)が消えてしまうという問題が起きました。

よくある現象として、自動整形機能が関係しているかと思いましたが、うまくいかず。。

そこで次に、更新用のアカウントは元々固定ページの編集権限がなかったため、権限の問題で何とかならないかと考えました。

そこで付与した権限が「Unfiltered Html」です。これによって、iframeやphpコードを直書きしている所が消えたり整形されたりといったことが起きなくなりました。

権限のコントロールは「Role Manager」というプラグインで行いましたが、無駄なプラグインを入れたくない場合はfunction.phpに記述するやり方もあります。

function add_theme_caps(){
$role = get_role( ‘author’ );
$role->add_cap( ‘unfiltered_html’ );
}
add_action( ‘admin_init’, ‘add_theme_caps’ );

get_roleという関数で権限グループを指定して、add_capで権限名を指定することで追加ができるようです。

編集権限の問題は、個別の事情も多いと思うので今後も役に立ちそうなものはご紹介したいと思います!

トラックバックURL