PHP包含通过短代码是由WP gutenberg 编辑器移动

qncylg1j  于 2023-01-29  发布在  PHP
关注(0)|答案(1)|浏览(133)

我想在一个WP帖子中包含一个特定的php文件。因此,我使用的是默认的WP gutenberg 编辑器。在帖子的中间,我插入了一个类似[my-php-file]的短代码。在我的functions.php中,我使用了以下代码:

function include_file ( $atts ) {
   include('file.php');
}
add_shortcode( 'my-php-file', 'include_file')

到目前为止,一切都很好。我的php文件的内容被加载,但在顶部的WP后,而不是在中间,那里的短代码是放置。
有谁能告诉我为什么会发生这种情况,我该如何解决这个问题?这样php文件就可以显示出来,并包含在帖子的中间?

s4n0splo

s4n0splo1#

add_shortcode回调函数希望您返回内容,通过包含文件,它将执行代码并将内容输出到输出缓冲区(而不是作为函数结果)。
您可以尝试使用输出缓冲返回内容,而不是直接输出到显示器,如下所示:

function include_file ( $atts ) {
   ob_start();
   include('file.php');
   return ob_get_clean();
}
add_shortcode( 'my-php-file', 'include_file')`

您可以在www.example.com上找到有关WordPress文档的更多信息https://developer.wordpress.org/reference/functions/add_shortcode/#more-information:
请注意,短代码调用的函数不应生成任何类型的输出。短代码函数应返回用于替换短代码的文本。直接生成输出将导致意外结果。这与筛选器函数的行为方式类似,因为您无法控制调用它们的时间和位置,所以它们不应从调用中生成意外副作用。

相关问题