ホームページ >バックエンド開発 >PHPチュートリアル >WordPress 作成者ロールはビデオ コードを追加できません_PHP チュートリアル

WordPress 作成者ロールはビデオ コードを追加できません_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:14:03786ブラウズ

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')

== false)

kses_init_filters();
} add_action('init', 'kses_init');
add_action('set_current_user', 'kses_init');


この時点で、現在のユーザーに unfilter_html の権限がないことがわかりました。

解決策

1.関数remove_filterを使用してこの

wp_filter_post_ksesを削除しようとしますが、これはadd_filterとremove_filterの順序の問題につながりますが、

remove_filterを追加した場所はadd_filterの前です。

追加削除する賢い場所を見つけたとしても、このシーケンスに頼りすぎており、誰かが大きな混乱を引き起こすかどうかは保証できません。

2. ユーザーに pre-unfilter_html 権限を直接付与します。これの欠点の 1 つは、

kses_init_filter

内の一連の関数が削除されることです。これが私自身のブログであること、執筆者が全員指名された人であること、そしてこの解決策が分かりやすく、それほど紆余曲折を必要としないことを考慮して、この方法を使用することにしました。


Wordpress は非常に強力ですが、とてもイライラします。

http://www.bkjia.com/PHPjc/440311.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/440311.html技術記事 WordPress にビデオ コードを追加できないという非常に奇妙な状況が常に発生していました。具体的には、バックグラウンド エディターのテキスト モードでビデオ コードを追加した後、視覚化に切り替えると正常に表示できるようになりました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。