PHP函数回显包含文件

时间:2019-04-30 17:17:51

标签: php wordpress php-7.0

我目前正在开发wordpress插件。我创建了一个简码,其中显示了另一个如下所示的html / php文件的内容:

function df_display_form()
{
    // Fetching some data with $wpdb

    // Display the data
    include_once plugin_dir_path(__FILE__) . 'markup/show-dynamic-form.php';
}

我的问题是,简码将显示在页面顶部。所以我用谷歌搜索了issus,发现了一个solution。由于存在问题,问题在于应该使用return而不是echo

所以我的问题是如何从包含的文件中返回渲染的内容? (不是回声)。

2 个答案:

答案 0 :(得分:1)

尝试使用输出缓冲区。 https://www.php.net/manual/en/function.ob-get-clean.php

function df_display_form()
{
    ob_start(); 
    // Fetching some data with $wpdb

    // Display the data
    include_once plugin_dir_path(__FILE__) . 'markup/show-dynamic-form.php';
    $out = ob_get_clean();
    return $out;
}

答案 1 :(得分:0)

您必须使用php函数通过简码显示表单。

我认为您目前在show-dynamic-form.php文件中拥有这种类型的代码。

<?php

// Some codes

?>

<form>

Form elements

</form>

它只会将您的代码回显到帖子或页面的顶部。正确的方法是:

<?php

    // Some codes

    $variable = '<form>';
    $variable .= 'form elements';
    $variable .= '</form>';

    return $variable;

?>

尝试在您的dynamic-form.php文件中使用这种方式,它应该可以工作。