我一直在寻找解决方法,虽然我对我的问题有了更好的理解(感谢其他人发布的类似查询),但我仍然不确定解决方案。
我正在编写一个短代码,如下所示:
function cup_bc_shortcode(){
$html = file_get_contents(\'/html/cup_bc_layout.php\', true);
return $html;
}
add_shortcode(\'budgetcalc\', \'cup_bc_shortcode\');
文件“cup\\u bc\\u布局”。php’包含html和php。PHP代码在输出时呈现为文本,而不是由浏览器处理。是否有类似的方式包含PHP文件?
我理解,为了工作,短代码必须返回输出,但如果我可以帮助的话,我不希望在这个函数中将其构建为单个字符串。
此外,我对PHP还很陌生,所以即使是最明显的解决方案,我也无法找到。
非常感谢你的帮助。
最合适的回答,由SO网友:Bainternet 整理而成
问题是您正在使用file_get_contents()
它只获取文件的内容(因此而得名)
如果需要渲染(评估和处理php文件),那么只需使用include()
.
但如果你的cup_bc_layout.php
文件echo输出了一些内容,那么您应该将include放在对象缓冲区中,然后返回值以确保短代码正常工作。
所以试试这个:
function cup_bc_shortcode($atts,$content=NULL){
ob_start();
include(\'/html/cup_bc_layout.php\');
$return_val = ob_get_contents();
ob_end_clean();
return $return_val;
}
add_shortcode(\'budgetcalc\', \'cup_bc_shortcode\');