将PHP变量传递给另一个文件

时间:2019-11-27 作者:Evan Meredith-Davies

有没有一种简单的方法可以将数据从一个文件传递到另一个文件?我是PHP新手,在网上找不到问题的简单答案。如果回答了一百万次,请道歉&;提前谢谢。

My Template 

<?php

// Declare a variable with the name of the file I want to pull in 
$critical_css = \'style\';

// Header
get_header();

?>
Header 

// Get php file with inline style written inside
<?php get_template_part(\'/path/to/\' . $critical_css); ?> 

2 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

WordPress模板函数在默认情况下不支持传递变量(据我所知),因此您需要编写自己的函数。比如像这样,

// functions.php
function my_template_include_with_variables( string $path = \'\', $data = null ) {
  $file = get_template_directory() . \'/\' . $path . \'.php\';
  if ( $path && file_exists( $file ) ) {
    // $data variable is now available in the other file
    include $file;
  }  
}

// in a template file
$critical_css = \'style\';
// include header.php and have $critical_css available in the template file
my_template_include_with_variables(\'header\', $critical_css);

// in header.php
var_dump($data); // should contain whatever $critical_css had
<小时/>

UPDATE 18.8.2020

自从WordPress 5.5 您可以通过本机模板函数传递其他参数(例如。get_header(), get_template_part(), 数组中的模板文件。

来自开发文档,

get\\u template\\u part(字符串$slug,字符串$name=null,数组$args=array())

SO网友:maryisdead

只需将变量声明为global 在您的页眉模板中即可:

<?php

global $critical_css;
get_template_part(\'/path/to/\' . $critical_css);

?> 
无需编写自己的模板加载内容(这通常是个坏主意)。

相关推荐

Ajax-action.php找不到添加的操作

尊敬的Wordpress插件开发人员同事:,我目前正在开发一个WordPress定制预订插件。在这个插件中,我添加了一个日历短代码,它在页面上嵌入了一个Html月历。我还添加了一些Jquery,当用户单击相应的按钮时,这些Jquery应该会得到上个月或下个月的日历。jquery向管理ajax发送post请求。php,这将触发一个添加的ajax操作。唯一的问题是管理ajax。php返回400,这意味着它找不到操作。我知道会触发Wp\\u Lbs\\u日历的构造函数(这意味着必须添加操作),因为show函数成