WordPressに特殊文字変換機能をつける

記事を投稿するとき「<」などと入力するときは「&lt;」と書く必要があります。
特殊文字についてはこちら
これを普通に入力した後変換してくれる下のようなボタンを投稿ページにつけたいと思います。
WordPressのescapeボタン

編集するのは「wp-includes/js/quicktags.js」です。
まず、「function edToolbar() {」の行の上に以下のように追加します。

<code>
function edEscapeString(strOld)
{
    var strNew = "";

    for(var i = 0; i &lt; strOld.length; i++){
        var c = strOld.charAt(i);

        switch(c){
        case '&lt;':
            c = "&amp;lt;";
            break;
        case '&gt;':
            c = "&amp;gt;";
            break;
        case '&amp;':
            c = "&amp;amp;";
            break;
        case '    ':
            c = "    ";
            break;
        }
        strNew += c;
    }
    return strNew;
}
function edEscapeChars(myField) {
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        strTmp = sel.text;
        strTmp = edEscapeString(strTmp);
        sel.text = strTmp;
        myField.focus();
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var strTmp = myField.value.substring(startPos, endPos);
        var strPos = myField.value.substring(endPos, myField.value.length);
        var strPre = myField.value.substring(0, startPos);
        strTmp = edEscapeString(strTmp);
        myField.value = strPre + strTmp + strPos;
        myField.focus();
        myField.selectionStart = startPos + strTmp.length;
        myField.selectionEnd = startPos + strTmp.length;
    }
}
</code>

次に「function edToolbar() {」の中の「document.write(‘<input type=”button” id=”ed_spell” class=”ed_button” onclick=”edSpell(edCanvas);” title=”Dictionary lookup” value=”lookup” />’);」の上に以下の行を追加します。

<code>
document.write('&lt;input type="button" id="ed_escape" class="ed_button" onclick="edEscapeChars(edCanvas);" title="escape characters" value="escape" /&gt;');
</code>

これで「escape」というボタンができるので変換したい部分を選択しこのボタンをクリックすると変換してくれます。

今回参考にさせていただいたサイト
エディターのボタンを増やす -2

コメントを残す

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*