在 PHP 函数中包装 PHP 和 HTML 以创建短代码
Wrapping PHP and HTML in PHP function to create a shortcode
我正在尝试创建一个用于 WordPress 的短代码,这将允许我使用 PHP 和 HTML 功能。
我已经创建了短代码,它使用简单的 echo Hello World 就可以工作,但是当我尝试用它来显示 160 行 PHP 和 HTML 的结果时,它什么也没显示,甚至没有错误。
尝试了几种不同的方法后,最简单的方法似乎是:
function imported_table( $atts ) {
$var = file_get_contents(TEMPLATE_DIR . "/imported_table.php");
}
add_shortcode( 'imported_output', 'imported_table');
...其中 imported_table.phpcontains 我的 160 行 HTML 和 PHP。 TEMPLATE_DIR 在 wp-config 中设置并按其应有的方式工作 - 我没有得到 'missing file' 错误,至少(在几次失误之后)。
这里的 imported_table.php 文件比 post 有点长,但本质上是这样的:
<Some HTML>
<?php
?>
<Some HTML with <?php >>
<?php
?>
<closing HTML>
很多HTML和嵌套PHP。如果我在 WordPress 的 PHP 插件中使用该代码,它本身就可以工作,但该插件已被证明存在漏洞和自身的错误,这就是我尝试在短代码中使用该代码的原因.
你能试试这个吗?
不要使用 TEMPLATE_DIR 和 file_get_contents。
function imported_table( $atts ) {
ob_start();
include(get_template_directory() . "/imported_table.php");
$var = ob_get_contents();
ob_end_clean();
echo $var;
}
我正在尝试创建一个用于 WordPress 的短代码,这将允许我使用 PHP 和 HTML 功能。
我已经创建了短代码,它使用简单的 echo Hello World 就可以工作,但是当我尝试用它来显示 160 行 PHP 和 HTML 的结果时,它什么也没显示,甚至没有错误。
尝试了几种不同的方法后,最简单的方法似乎是:
function imported_table( $atts ) {
$var = file_get_contents(TEMPLATE_DIR . "/imported_table.php");
}
add_shortcode( 'imported_output', 'imported_table');
...其中 imported_table.phpcontains 我的 160 行 HTML 和 PHP。 TEMPLATE_DIR 在 wp-config 中设置并按其应有的方式工作 - 我没有得到 'missing file' 错误,至少(在几次失误之后)。
这里的 imported_table.php 文件比 post 有点长,但本质上是这样的:
<Some HTML>
<?php
?>
<Some HTML with <?php >>
<?php
?>
<closing HTML>
很多HTML和嵌套PHP。如果我在 WordPress 的 PHP 插件中使用该代码,它本身就可以工作,但该插件已被证明存在漏洞和自身的错误,这就是我尝试在短代码中使用该代码的原因.
你能试试这个吗?
不要使用 TEMPLATE_DIR 和 file_get_contents。
function imported_table( $atts ) {
ob_start();
include(get_template_directory() . "/imported_table.php");
$var = ob_get_contents();
ob_end_clean();
echo $var;
}