平台开发中,欢迎参与测试。你可以在 QQ群:1046115671 中与我们交流,或是直接在社区发帖。(PS:翻译平台暂不可用,如需参与翻译请仍前往 wp-china.org )
  • 孙锡源
    管理员

    这和命名空间没关系。

    考虑存在以下三种导致问题的可能:

    1. 代码执行顺序问题,你当前是否将add_shortcode放置在了某个钩子中执行?该钩子的执行顺序可能是在do_shortcode之后,于是你的代码不会被触发。
    2. 你当前命名空间下是否有自己实现的一个和add_shortcode重名的函数?如果包含重名函数,默认会优先调用当前命名空间下的。
    3. 你的短码输出位置是否有css或页面布局造成的遮挡,导致你没看到返回结果?

    以上三种可能中1的可能性最大,排查可以按这样的思路查:

    在add_shortcode中插入以下代码,然后刷新页面观察程序是否被中断,如果没被中断就说明你的短码未被调用,于是检查是否存在类似情况1中所述的代码执行顺序方面的问题。

    var_dump('test');
    
    exit;

     

  • 耗子
    楼主

    https://litepress.cn/wp-content/uploads/hm_bbpui/20143/2in18kggvxc9co4lt0owj9lwqf6bl6ud.png

     

    见图,唯一改动就是加上//,问题即解决

     

  • 孙锡源
    管理员

    是你的回调方式写错了。你没有给add_shortcode的回调函数名拼接上命名空间,导致WordPress误认为这是全局空间下的函数。
    正确写法应该是

    add_shortcode( '你的短码', '你的命名空间\你的函数名' );

     

  • 正在查看 3 条回复
    • 哎呀,回复话题必需登录。