Zao’s Blog
感谢上天,我不是一个人在战斗!
炒股开户,证券网上开户,不限资金佣金万1.5包含规费,量大手续费万1.3,QQ 860100868
十二月
17

一直没有发现wordpress的编辑器在你想输入一些代码的时候是那么不方便,因为我一直都在使用coolcode显示文章中的代码。直到我的上一篇文章,当我想插入单个标签的时候,比如</p>,我才发现是多么的痛苦。一两个标签的话直接改也不算麻烦,但是如果是多个独立分开的标签呢?那要改多少次?的确,你想显示代码的话用coolcode插件就可以了。但这个插件有一个特点,每次引用必然是独立成行的,这样整篇文章就变得很难看了。我尝试使用WP自带的<code>标签,发现在浏览文章的时候不能解析<code>,网上也搜索不到解决办法。

经过一番努力,自己修改了一下Wordpress的快速代码按钮(源文件是wp-includes/js/quicktags.js),终于大功告成!下面把我的方法共享给需要的人,记得先备份文件啊。 :mrgreen:

找到

edButtons[edButtons.length] =
new edButton('ed_code'
,
'代码'

在它上面加上

edButtons[edButtons.length] =
new edButton('ed_entity'
,
'Html-Entity'
,
''
,
''
,
'e'
,-
1
);// special case

找到

else if (button.id == 'ed_link') {

在它上面加上

else if (button.id == 'ed_entity') {
        
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertEntity(edCanvas, ' + i + ');" value="' + button.display + '" />');
    
}

找到

function edInsertLink(myField, i, defaultValue) {

在它上面加上

function edInsertEntity(myField, i) {
    
//IE support
    
if (document.selection) {
        
myField.focus();
        
sel = document.selection.createRange();
        
if (sel.text.length > 0) {
            
sel.text = HtmltoEntity(sel.text);
        
}
        
else {
            
var myValue = prompt("In Put Some HTML Text", '');
            
if (myValue) {
                
sel.text = HtmltoEntity(myValue);
            
}
        
}
        
myField.focus();
    
}
    
//MOZILLA/NETSCAPE support
    
else if (myField.selectionStart || myField.selectionStart == '0') {
        
var startPos = myField.selectionStart;
        
var endPos = myField.selectionEnd;
        
var cursorPos = startPos;
        
var scrollTop = myField.scrollTop;
 
        
if (startPos != endPos) {
            
var temp = HtmltoEntity(myField.value.substring(startPos, endPos));
        
}
        
else {
            
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
        
}
        
myField.value = myField.value.substring(0, startPos)
                      +
temp
                      +
myField.value.substring(endPos, myField.value.length);
        
cursorPos += temp.length;
        
myField.focus();
        
myField.selectionStart = cursorPos;
        
myField.selectionEnd = cursorPos;
        
myField.scrollTop = scrollTop;
    
}
    
else {
        
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
        
myField.value += temp;
        
myField.focus();
    
}
}
function HtmltoEntity(str){
    
var match = [
        
'<',
        
'>',
        
'"',
        
"'"
    
];
    
var replace = [
        
'&lt;',
        
'&gt;',
        
'&quot;',
        
'&#039;'
    
];
    
str = str.split("&");
    
str = str.join("&amp;");
    
for(var i=0;i<match.length;i++){
        
var ms = eval("/"+match[i]+"/g");
        
str = str.replace(ms, replace[i]);
    
}
    
return str;
}

这样就OK了,其它我还用类似的方法加了coolcode的快速按钮,这里不赘述了。

发表评论





改变评论框高度:增大(+) | 减小(-)

DO NOT Fill!