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

如何通过短码返回WordPress插件包含文件中PHP函数的内容?

解决WordPress短码调用子文件函数不输出内容的问题

你的问题核心在于两个细节处理不当:

  1. 子文件中直接执行myFunc()但未将返回值传递给短码函数;
  2. 短码函数本身没有返回任何内容,而WordPress短码要求函数必须返回输出内容才能正常显示。

修改步骤:

1. 调整子文件nameToCall.php

只保留函数定义,不要在子文件里直接执行函数:

<?php
function myFunc(){
    return "<p class='testRed'>Hello world 2!!</p>";
}

2. 修改主文件的短码函数

引入子文件后,调用myFunc()并返回其结果,同时增加文件存在判断避免报错:

function my_shortcode_function() {
    $func_file = plugin_dir_path( __FILE__ ) . '/functions/nameToCall.php';
    // 先检查文件是否存在,避免致命错误
    if ( file_exists( $func_file ) ) {
        require $func_file;
        // 调用子文件的函数并返回结果给短码
        return myFunc();
    }
    // 文件不存在时返回默认提示
    return "<p>函数文件未找到</p>";
}

add_shortcode('my_shortcode', 'my_shortcode_function');

补充说明:

  • WordPress短码的核心逻辑是返回内容,而非直接echo输出(虽然echo能显示,但不符合官方规范,可能引发排版问题);
  • 加入file_exists()判断是为了提升插件稳定性,避免因文件缺失导致网站崩溃;
  • 子文件仅负责定义函数,把输出控制权交给短码函数,更符合模块化开发的思路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:50:48