ホームページ >バックエンド開発 >PHPチュートリアル >WordPress 作成者ロールはビデオ コードを追加できません_PHP チュートリアル
WordPress にビデオ コードを追加できないという非常に奇妙な状況が常にありました。具体的には、バックグラウンド エディターのテキスト モードでビデオ コードを追加した後、視覚化に切り替えるとビデオ ボックスが正常に表示されます。保存すると、ビデオコードのメッセージが表示されます。
注意深く観察した結果、作成者は追加できないが、編集者と管理者は追加できることがわかりました。
興奮しすぎずに、最初に解決策について話しましょう: 率直に言うと、プラグイン「ユーザー ロール エディター」をインストールし、作成者ロールの下にある「HTML タグをフィルターしない」にチェックを入れるだけです。
1. デバッグして、次のコード呼び出しシーケンスを見つけます。
wp_update_post->wp_insert_post->
sanitize_post->
sanitize_post_field->
2.
content_save_pre.
wp_filter_post_kses
');。
関数 kses_init() { kses_remove_filters();
if (
current_user_can('unfiltered_html')
kses_init_filters();
}
add_action('init', 'kses_init');
add_action('set_current_user', 'kses_init');
解決策
1.関数remove_filterを使用してこの
wp_filter_post_ksesを削除しようとしますが、これはadd_filterとremove_filterの順序の問題につながりますが、
remove_filterを追加した場所はadd_filterの前です。追加削除する賢い場所を見つけたとしても、このシーケンスに頼りすぎており、誰かが大きな混乱を引き起こすかどうかは保証できません。
2. ユーザーに pre-unfilter_html 権限を直接付与します。これの欠点の 1 つは、kses_init_filter
内の一連の関数が削除されることです。これが私自身のブログであること、執筆者が全員指名された人であること、そしてこの解決策が分かりやすく、それほど紆余曲折を必要としないことを考慮して、この方法を使用することにしました。
http://www.bkjia.com/PHPjc/440311.html