如何通过短代码包含php时发送变量?

时间:2016-07-27 09:39:56

标签: php wordpress include 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发送变量。这是不可能的:[include filepath='/my_file.php?var=1'],但也许你明白了。

现在,我创建了许多不同的.php文件,其中包含变量,并将它们包含在内: [include filepath='/my_file1.php'][include filepath='/my_file2.php'] 这真的很烦人,如果我在原来的php中改变一些东西,那么每一个都必须改变。有没有更好的办法? :)

1 个答案:

答案 0 :(得分:1)

您可以在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' << ...
希望有所帮助。