WordPress プラグイン Simple CSS 編集者権限でCSSの編集ができない

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

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.