WordPress プラグイン Simple CSS 編集者権限でCSSの編集ができない
2022/10/02
2022/10/06
WordPress のコンテンツを編集する際に、局所的に適応したいCSSを本文のエディタで書くと、CSSがそのまま表示されたりしてしまうので、別フィールドで書けるようにするプラグイン Simple CSSを使いました。
非常に簡単に使えて良かったんですが、編集者権限では、Simple CSSのフィールドが表示されないため、普段の編集者が編集できないという問題がわかりました。
設定等で、編集者権限でもSimple CSSを編集できるようにできないかを調べはじめたんですが、設定項目は無さそうでした。
次の手段として、User Role Editor プラグインを入れてみたけど、設定項目は出てこなかったため断念しました。
その次の手段として、Simple CSSにカスタマイズ用のfilterが用意されていないかを調べてみたら、用意されてました。
- simple-css.php
<?php
/**
* Add our Simple CSS meta box.
*
* @since 0.1
*/
function simple_css_metabox() {
// Set user role - make filterable
$allowed = apply_filters( 'simple_css_metabox_capability', 'activate_plugins' );
// If not an administrator, don't show the metabox
if ( ! current_user_can( $allowed ) ) {
return;
}
simple_css_metabox_capability というfilterがあることがわかりました。
デフォルトでは、activate_plugins 権限がある場合に、Simple CSSの欄を編集できるようになるようでした。
functions.php で、simple_css_metabox_capability フィルターを使って編集者でも持っている権限 edit_posts で、チェックするようにカスタマイズすれば良いようです。
- functions.php
<?php
/** 編集者も、Simple CSS を利用できるように設定する */
add_filter('simple_css_metabox_capability', function( $role ) { return 'edit_posts'; } );
簡単に目的の動作に設定することができて、ひと安心。安定のWordPress