WordPress自带的代码按钮或者插件问题太多,今天发现支持markdown的系统代码块非常完善,如果能搬过来使用非常合适(如下图),WordPress编辑器增加 markdown 代码版功能(适用所有主题)方法都一样,无非编辑器不同,这里要注意如果插件里增加过代码插件需要停用会有冲突,(WP 通用,这种 <pre><code> 样式),同时加“右上角复制按钮”,同时实现按钮“绝对定位”,更稳的做法:外面包一层容器,把按钮定位到容器右上角,就不会掉到下面。方法如下:

这是参考markdown系统代码图,注意并不是支持markdown功能只参markdown编辑器里的代码功能

20260410022449814

这是编辑器加上后效果如下,编辑器也可以修改为图标或者像现在文字

20260410022653158

20260410022631344

前端文章最终显示效果如下面的代码框

把这段 PHP 加到主题 functions.php(建议子主题)

文件在你的主题目录下/wp-content/themes


// 前台注入“代码复制按钮”脚本与样式,加在最末尾
add_action('wp_enqueue_scripts', function () {
    $css = <<<CSS
/* 外层包裹,专门给复制按钮定位 */
.code-copy-wrap{
  position: relative;
}

/* 按钮固定在右上角 */
.code-copy-btn{
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 20;
  border: 0;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  background: rgba(255,255,255,.14);
  color: #fff;
  white-space: nowrap;
}
.code-copy-btn:hover{ background: rgba(255,255,255,.24); }
.code-copy-btn.copied{ background:#16a34a; color:#fff; }

/* 给代码顶部留出按钮空间,避免遮挡 */
.code-copy-wrap pre{
  margin: 0;
  padding-top: 34px !important;
}
CSS;

    $js = <<<JS
document.addEventListener('DOMContentLoaded', function () {
  var pres = document.querySelectorAll('pre');
  pres.forEach(function(pre){
    var code = pre.querySelector('code');
    if (!code) return;

    // 防重复
    if (pre.parentElement && pre.parentElement.classList.contains('code-copy-wrap')) return;

    // 包一层容器
    var wrap = document.createElement('div');
    wrap.className = 'code-copy-wrap';
    pre.parentNode.insertBefore(wrap, pre);
    wrap.appendChild(pre);

    // 按钮
    var btn = document.createElement('button');
    btn.className = 'code-copy-btn';
    btn.type = 'button';
    btn.textContent = '复制';
    wrap.appendChild(btn);

    btn.addEventListener('click', async function(){
      var text = code.innerText || code.textContent || '';
      try{
        await navigator.clipboard.writeText(text);
        btn.textContent = '已复制';
        btn.classList.add('copied');
        setTimeout(function(){
          btn.textContent = '复制';
          btn.classList.remove('copied');
        }, 1400);
      }catch(e){
        var ta = document.createElement('textarea');
        ta.value = text;
        document.body.appendChild(ta);
        ta.select();
        try{ document.execCommand('copy'); btn.textContent = '已复制'; }
        catch(err){ btn.textContent = '失败'; }
        document.body.removeChild(ta);
        setTimeout(function(){ btn.textContent='复制'; }, 1400);
      }
    });
  });
});
JS;

    wp_register_style('code-copy-inline-style', false);
    wp_enqueue_style('code-copy-inline-style');
    wp_add_inline_style('code-copy-inline-style', $css);

    wp_register_script('code-copy-inline-script', '', [], null, true);
    wp_enqueue_script('code-copy-inline-script');
    wp_add_inline_script('code-copy-inline-script', $js);
});

 

 

 

服务声明: 本网站除正版商用版块可商用外,其他所有发布的源码、软件和资料均为作者提供或网友推荐收集各大资源网站整理而来,仅供功能验证和学习研究使用,您必须在下载后24小时内删除。不得使用于非法商业用途,不得违反国家法律,否则后果自负!一切关于该资源商业行为与本站无关。如果您喜欢该程序,请支持购买正版源码,得到更好的正版服务。如有侵犯你的版权合法权益,请邮件或QQ:3089659733与我们联系处理删除(邮箱:ynzsy@qq.com),本站将立即更正。