0

我在自定义插件的根目录中有两个文件“my-plugin.php”和“test.view.php”。“my-plugin.php”的内容是:

    /*
  Plugin Name: test
  Plugin URI: test.com
  Description: test
  Version: 1.0
  Author: test
  Author URI: test
  License: GPLv2+
  Text Domain: conference
*/
class Test{
    function __construct() {
        add_shortcode('testShortCode' , array( $this, 'shortCode'));
    }
    function shortCode() {
        return include 'test.view.php';
    }
}
new Test();

而“test.view.php”是:

<h1>Test</h1>

我将 [testShortCode] 放在一个页面中,但在打印测试之后我看到一个“1”。 在此处输入图像描述

4

2 回答 2

2

文档中:

处理返回:包括在失败时返回 FALSE 并引发警告。成功包含,除非被包含文件覆盖,否则返回1

因此,要摆脱您看到的1,您可以将test.view.php内容更改为:

return "<h1>Test</h1>";

...或者您将shortCode()功能更改为:

function shortCode() {
    include 'test.view.php';
}
于 2018-10-26T14:06:00.187 回答
1

你也可以这样做:

function shortCode() {
    ob_start();
    require_once('test.view.php');
    $data = ob_get_contents();
    ob_end_clean();
    return $data;
}

参考:https ://stackoverflow.com/a/33805702/1082008

于 2018-10-26T14:22:44.483 回答