web-dev-qa-db-ja.com

低レベルのユーザー向けに、タイトルにフィルタなしのHTMLを許可する

タイトルにHTMLを使用できるようにするために、マルチサイトインストールでunfiltered_html機能を非ネットワーク管理者にどのように与えることができますか?

Wp-includes/capabilities.php(下記)では、この機能はsuper_admin以外には与えられないようです。

case 'unfiltered_html':
        // Disallow unfiltered_html for all users, even admins and super admins.
        if ( defined('DISALLOW_UNFILTERED_HTML') && DISALLOW_UNFILTERED_HTML ) {
            $caps[] = 'do_not_allow';
            break;
        }
        // Fall through if not DISALLOW_UNFILTERED_HTML
    case 'delete_user':
    case 'delete_users':
        // If multisite these caps are allowed only for super admins.
        if ( is_multisite() && !is_super_admin() )
            $caps[] = 'do_not_allow';
        else
            $caps[] = $cap;
        break;

すべてのhtmlフィルタリングや 汚れた行為をコミットする を削除しなくてもこれは可能ですか?

使用事例:

編集者および作家は、必要に応じてタイトルに<br/>タグを使用して2行または3行に分割する機能を要求しています。

現在の回避策:

記入時にフロントエンドのthe_titleを置き換える代替タイトルメタボックス。(作家を混乱させる)

より簡単な解決策:

スーパー管理者アクセス権を付与します(媒体社からは許可されません)。

2
Chris_O

編集者と作成者がデフォルトのタイトルを最初の行として使用し、他の行を別々の行として出力する字幕のメタボックスを追加するように設定します。これらすべてをh1ヘッダータグに含める場合は、テーマの調整が必要になります。管理テーマを調整すると、このメタボックスをタイトル入力フィールドの下に配置できます。これは混乱を減らすのに役立ちます。

WordPressがタイトルからHTMLを防ぐ方法は無効にできません。コアをハックした場合にのみ可能ですが、それでも、それは多くの奇妙な問題を引き起こします。あなたがパーマリンク関数を書き直さない限り、フィードはタイトルでHTMLを扱うことができず、パーマリンクはひどく振る舞います。デフォルトのタイトルをそのままにしてカスタムフィールドを使用するのがよい方法です。

1
Elpie

私にとっては、改行を示す簡単なマーカー(例えばダブルコロン)を提供し、それからそれらを実際の改行と交換します。表示(the_titleフィルタ付き).

このようにして、それを「コンテキスト対応」にして、不適切な場所や見苦しい場所に改行が表示されないようにすることもできます(管理者のように)。

新しい作者や編集者にその機能を知らせるために、タイトル入力の横にちょっとしたワンタイム通知、またはヘルパーアイコンを付けました。

これがあなたが探している答えではないことを私は知っています、しかしそれにもかかわらず私はそれがあなたを動揺させるかもしれないことを願っています;)

0
TheDeadMedic