通过短代码包含 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' << ...

希望对您有所帮助。