スプレッドシートの公開

WordPressサイト運営に関わる事項

スプレッドシートを公開(保存)できない場合

Googleスプレットシートのファイルがクラウド上あるので、公開することにしましたが、なぜかプレビューでは表示できるのですが、カスタムHTMLが保存されないことが発覚しました。
※編集中でのプレビューはできます。

結果的には、[ iframe ]ダグが管理者以外保存できないことが原因だったようです。

[ iframe ] タグを保存できるようにする

[ iframe ]タグを保存できる様にユーザー権限権限を付与する方法で解決するとこにしました。

最終的に使用した解決方法
【 個々のサイト(サブドメイン)の[ functions.php ]にそれぞれ追記 】

mu-plugins フォルダに追加する(マルチサイト)

このマルチサイトでは正しく動作できませんでした(メインサイトは適用されました)。

自作ファイル名(例):add_cap_to_unfiltered.php
保存先パス(例):/public_html/wp-content/mu-plugins/
※フォルダ名[mu-plugins]は自分で作成

add_cap_to_unfiltered.php のファイル内に下記コードを記載して、ファイルをアップロード
※実際は cpanel から ファイル マネージャー で、直接作成編集保存しました。

<?php

// マルチサイトでunfiltered_htmlを保存できるようにする
// 管理者と編集者

function add_cap_to_unfiltered($caps, $cap, $user_id) {
    if ($cap === 'unfiltered_html'
    && (user_can($user_id, 'editor') || user_can($user_id, 'administrator'))
    ) {
        $caps = array('unfiltered_html');
    }
    return $caps;
}
add_filter('map_meta_cap', 'add_cap_to_unfiltered', 1, 3);

functions.php へ 追記する(マルチサイト型)

それぞれのサイトの[ functions.php ]へ 下記コードを追記

[ mu-plugins ]で作成したコードをそのまま使用(追記したサイト全て確認OK)

// マルチサイトでunfiltered_htmlを保存できるようにする
// 管理者と編集者

function add_cap_to_unfiltered($caps, $cap, $user_id) {
    if ($cap === 'unfiltered_html'
    && (user_can($user_id, 'editor') || user_can($user_id, 'administrator'))
    ) {
        $caps = array('unfiltered_html');
    }
    return $caps;
}
add_filter('map_meta_cap', 'add_cap_to_unfiltered', 1, 3);

functions.php へ 追記する(シングルサイト)

ユーザー権限毎にカスタマイズする方法で解決します。
管理者&編集&投稿者の3つに権限を付与したいと思います。

〇 特権管理者:マルチサイト管理者
〇 管理者: administrator
〇 編集者: editor
〇 投稿者: author
〇 寄稿者: contributor
〇 購読者: subscriber

場所(例):Public_html\wp-content\themes\テーマ\functions.php
※実際には検証できてません。

マルチサイトで実行したらサイトにアクセスできなくなりました、削除したら戻ります。

//スプレッドシート公開(保存)iframe 保存権限付与
function add_if_caps(){

  //管理者
  $role = get_role( 'administrator' );
  $role->add_cap( 'unfiltered_html' );
  //編集者
  $role = get_role( 'editor' );
  $role->add_cap( 'unfiltered_html' );
  //投稿者
  $role = get_role( 'author' );
  $role->add_cap( 'unfiltered_html' );

}
add_action('admin_init', 'add_if_caps');

下の記事が保存出来るようになった投稿記事になります。

元素騎士 ビショップ スキル一覧
ビショップのスキル一覧をスプレッドシートで公開してみました。

[ WAF ]の設定 一時 オフ

ModSecurity ]を一時的にオフにする
※検索で沢山ヒットしますが、シングルサイト&管理者で保存できない場合と思われます。

マルチサイトでは解決できませんでした、unfiltered_html の方法のみと思われます。

参考にしたサイト

マルチサイト向け情報

WordPressでunfiltered_html権限の付与でHTMLエスケープを回避 | senooken JP
WordPressをマルチサイトで運用しており、サイトごとにプロフィールを変えるため、1サイト1ユーザーを管理者の権限で作成して、別々のユーザーで投稿などをしていた。しかし、TwitterやData URIによる画像の埋め込みなど行うと、な...
WordPress特集 - ユーザー権限のカスタマイズ | Web Tips
ユーザー権限は5つのグループ(マルチサイトは6つ)に分かれており、新規で追加されたユーザーはいずれかのグループに属します。この記事では、それぞれのグループが持っている権限をカスタマイズする方法を解説します。
WordPressのmu-pluginsフォルダとは
must-use plugins(mu-plugins)とは?普通にWordpressサイトを運営しているだけだとあまり見かけない用語ですが、マルチサイトで必ず有効にしたいプラグインを設定したり、Wordpressアップデートの自動更新有効

シングルサイト向け情報

【WordPress】管理者以外のユーザーでiframeタグを入力すると保存時に削除される
本記事では、WordPressで管理者以外のユーザーで投稿の本文やテキストエリアにiframeタグを入力すると保存時に削除される場合の対処法をご紹介しています。 上記の疑問にお答えします。 では、解説
https://www.nxworld.net/wp-customize-user-role.html
WordPressユーザーの「権限グループ」と「権限」徹底解説ガイド
WordPressにおけるユーザーの役割と機能(権限グループと権限)について詳しくご説明します。コードまたは各種WPユーザーロールプラグインを使用してカスタム権限グループと権限を編集、作成する方法も扱います。
WordPressのユーザー権限をカスタマイズするプラグイン「User Role Editor」 – ワードプレステーマTCD
2022/05/02 内容を更新いたしました。WordPressでは、複数のユーザでサイトを運営するときにはユーザーひとりひとりにアカウントを発行できます。

コメント

タイトルとURLをコピーしました