通过短代码包含 php 时如何发送变量?
How do you send a variable when including a php via shortcode?
我在 WordPress 页面上包含一个 PHP 文件,如下所示:[include filepath='/my_file.php']
我更改的 functions.php
部分看起来像这样:
function include_file($atts) {
extract(shortcode_atts(array('filepath' => NULL), $atts));
if ($filepath!='NULL' && file_exists( trailingslashit( get_stylesheet_directory() ) . $filepath)){
ob_start();
include(get_stylesheet_directory() . '/' . $filepath);
$content = ob_get_clean();
return $content;
}
}
但是,我希望能够发送带有包含的变量。这是不可能的:[include filepath='/my_file.php?var=1']
,但也许你明白了。
现在,我创建了很多不同的 .php 文件,其中包含变量并像这样包含它们:
[include filepath='/my_file1.php'][include filepath='/my_file2.php']
这真的很烦人,如果我更改了原始 php 中的某些内容,则必须更改其他所有内容。有没有更好的办法? :)
您可以在 include 语句之前定义一个变量,该变量对您要包含的文件可见。
简单示例(我想将 $foo
传递到我的文件中):
inc.php:
echo "inside inc.php '" . $foo . "' << ...\n";
test.php:
function hello()
{
$foo = 9999;
include('inc.php');
}
hello();
这将输出:
# php test.php
inside inc.php '9999' << ...
希望对您有所帮助。
我在 WordPress 页面上包含一个 PHP 文件,如下所示:[include filepath='/my_file.php']
我更改的 functions.php
部分看起来像这样:
function include_file($atts) {
extract(shortcode_atts(array('filepath' => NULL), $atts));
if ($filepath!='NULL' && file_exists( trailingslashit( get_stylesheet_directory() ) . $filepath)){
ob_start();
include(get_stylesheet_directory() . '/' . $filepath);
$content = ob_get_clean();
return $content;
}
}
但是,我希望能够发送带有包含的变量。这是不可能的:[include filepath='/my_file.php?var=1']
,但也许你明白了。
现在,我创建了很多不同的 .php 文件,其中包含变量并像这样包含它们:
[include filepath='/my_file1.php'][include filepath='/my_file2.php']
这真的很烦人,如果我更改了原始 php 中的某些内容,则必须更改其他所有内容。有没有更好的办法? :)
您可以在 include 语句之前定义一个变量,该变量对您要包含的文件可见。
简单示例(我想将 $foo
传递到我的文件中):
inc.php:
echo "inside inc.php '" . $foo . "' << ...\n";
test.php:
function hello()
{
$foo = 9999;
include('inc.php');
}
hello();
这将输出:
# php test.php
inside inc.php '9999' << ...
希望对您有所帮助。