You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义TinyMCE编辑器中Shortcode无法生效的问题求助

问题解决:自定义分类插件中TinyMCE编辑器的短代码不生效

你的判断是对的,问题出在自定义分类页面的内容输出时没有触发短代码解析——WordPress默认只会对文章/页面的内容自动执行do_shortcode,但自定义分类页面的内容(尤其是插件自定义的编辑器字段)不会被自动处理,需要手动添加解析逻辑。

你的短代码本身无问题

先确认:你的短代码定义是正确的,因为在普通文章/页面中能正常工作,排除短代码本身的错误。

解决方案

根据你的插件实现方式,选择以下两种方法之一:

方法1:直接在输出时包裹do_shortcode()

找到插件中输出自定义分类页面编辑器内容的代码,把原始输出改成经过do_shortcode处理的版本。

比如原来的输出代码可能是:

echo get_post_meta( $term_id, 'your_custom_editor_field', true );

修改为:

echo do_shortcode( get_post_meta( $term_id, 'your_custom_editor_field', true ) );

(注意替换your_custom_editor_field为你实际存储编辑器内容的自定义字段键名)

方法2:添加全局过滤器(类似widget_text的思路)

如果插件有自定义的内容输出钩子,或者你想统一处理该字段的输出,可以添加过滤器:

针对自定义字段的过滤器

add_filter( 'get_post_metadata', function( $value, $object_id, $meta_key, $single ) {
    // 替换为你的自定义字段键名
    if ( $meta_key === 'your_custom_editor_field' && $single ) {
        return do_shortcode( $value );
    }
    return $value;
}, 10, 4 );

针对插件自定义输出钩子的过滤器

如果你的插件在输出内容时触发了自定义钩子(比如custom_category_page_content),直接添加:

add_filter( 'custom_category_page_content', 'do_shortcode' );

验证

修改代码后,刷新自定义分类页面,检查[sc_smAciklama]是否正常渲染为对应的<ul>列表内容。

内容的提问来源于stack exchange,提问作者cihankaba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:12:53