当前所在位置: 首页>>百科全书

WordPress运行代码功能非插件版

发布时间:2025-10-22 16:53:55 本站作者 【 字体: 】 浏览:171 次

网上针对WordPress 运行代码的插件和非插件版的方法都已经过时了,最主要的问题还是加入运行框中的代码会自动插入换行符,这直接导致了代码无法运行。下面这个方法完美解决的这些问题。

加入functions.php

自定义函数,完美解决换行符的问题,所贴即所见。注意:请将代码中的中文书名号改为尖括号。

$RunCode = new RunCode();
add_filter('the_content', array(&$RunCode, 'part_one'), -500);
add_filter('the_content', array(&$RunCode, 'part_two'),  500);
unset($RunCode);
class RunCode
{
    var $blocks = array();
    function part_one($content)
    {
        $str_pattern = "/(《runcode(.*?)》(.*?)《/runcode》)/is";
        if (preg_match_all($str_pattern, $content, $matches)) {
            for ($i = 0; $i < count($matches[0]); $i++) {
                $code = htmlspecialchars($matches[3][$i]);
                $code = preg_replace("/(s*?r?ns*?)+/", "n", $code);
                $num = rand(1000,9999);
                $id = "runcode_$num";
                $blockID = "<p>++RUNCODE_BLOCK_$num++";
                $innertext='<h3>代码预览</h3><textarea id="'.$id.'" class="runcode">'. $code . '</textarea><input type="button" value="运行代码" onclick="runCode(''.$id.'')"/><input style="margin-left: 47px;"type="button" value="全选代码" onclick="selectCode(''.$id.'')"/>';
                $this->blocks[$blockID] = $innertext;
                $content = str_replace($matches[0][$i], $blockID, $content);
            }
        }
        return $content;
    }
    function part_two($content)
    {
        if (count($this->blocks)) {
            $content = str_replace(array_keys($this->blocks), array_values($this->blocks), $content);
            $this->blocks = array();
        }
        return $content;
    }
}

JS函数控制运行代码按钮和全选按钮

function runCode(objid) {
    var winname = window.open('', "_blank", '');
    var obj = document.getElementById(objid);
    winname.document.open('text/html', 'replace');
    winname.opener = null; 
    winname.document.write(obj.value);
    winname.document.close();
}
function selectCode(objid){
    var obj = document.getElementById(objid);
    obj.select();
}

参考CSS

.runcode{
width: 100%;
font-size:13px;
padding:10px 15px;
color:#eee;
background-color: #263540;
margin-bottom:5px;
border-radius:2px;
overflow:hidden
}

运行方法

在撰写文章时切换到文本模式输入以下标签即可

<runcode>//这里贴要运行的代码</runcode>

希望textarea高度自适应而不出现滚动条

网上有css方法,没有效果,故采用jquery方法实现

$(function() {
    $('.mAIn-content textarea').autoHeight();
});
$.fn.extend({
    autoHeight: function(){
        return this.each(function(){
            var $this = $(this);
            if( !$this.attr('_initAdjustHeight') ){
                $this.attr('_initAdjustHeight', $this.outerHeight());
            }
            _adjustH(this).on('input', function(){
                _adjustH(this);
            });
        });
        //重置高度
        function _adjustH(elem){
            var $obj = $(elem);
            return $obj.css({height: $obj.attr('_initAdjustHeight'), 'overflow-y': 'hidden'}).height( elem.scrollHeight );
        }
    }
});


上一篇:WordPress自动为文章设置特色图像

下一篇:WordPress在文章列表中插入广告

最新发布
马蹄粉是木薯粉吗?马蹄粉和木薯粉一样吗?

马蹄粉是木薯粉吗?马蹄粉和木薯粉一样吗?

马蹄粉是木薯粉吗?马蹄粉和木薯粉一样吗?
马蹄粉是木薯粉吗?马蹄粉不是木薯粉。马蹄粉是由荸荠(马蹄)制成的粉末,含有丰富的维生素B和C,具有清热去湿、解毒的功效,常用于制作马蹄糕等点心。而木薯粉是由木薯根茎提取的淀粉,加水预热煮熟后会呈现透明状,口感带有弹性,常用于制作珍珠奶茶中的珍珠、芋圆、麻薯糍粑等食品。两者在原材料、口感、用途、营养价值及...
家里有臭虫是什么原因引起的?应该怎么办?

家里有臭虫是什么原因引起的?应该怎么办?

家里有臭虫是什么原因引起的?应该怎么办?
家里有臭虫是什么原因引起的?臭虫是一种喜欢藏在床垫、床板缝隙中的虫子。家里为什么会出现臭虫?1、环境原因:房间内空气不流通,晒不到太阳,平常盖被和垫被也不经常晒,到了臭虫繁殖季节,自然容易滋生臭虫。2、卫生条件:家庭的卫生状态非常重要,湿垃圾是否每天清理,卫生死角是否一周处理一次,如果没有每周...
家里为什么会有臭虫?什么原因引起的

家里为什么会有臭虫?什么原因引起的

家里为什么会有臭虫?什么原因引起的
家里会有臭虫的原因有:1、家里气候潮湿,人多房间小,空气不流通,有利于臭虫的孳生。2、床板上垫制皮或粘胶纸对臭虫提供了生存条件。3、家里床板质量不佳,致使臭虫可以在类似之处孳生。4、外界臭虫飞入家里,等等。除臭虫方法有哪些:人工捕捉:敲击床架、床板、炕席、草垫等,将臭虫震下、处死,或用针、铁丝挑出缝隙中...
红茶和绿茶的区别功效 二者的常见功效及区别

红茶和绿茶的区别功效 二者的常见功效及区别

红茶和绿茶的区别功效 二者的常见功效及区别
红茶和绿茶的区别功效是什么?本文由小编为您具体来介绍一下。(一)红茶和绿茶的区别主要体现在适用人群不同、冲泡水温不同、存放时间不同三个方面。1、适用人群不同:红茶和绿茶的区别不仅仅表现在功效方面,适用人群也不一样。胃病者更适合饮用红茶,由于红茶经过发酵,不属寒性,因此养胃,胃病者不能喝绿茶但可以喝红茶...