web-dev-qa-db-ja.com

PHP変数を別のファイルに渡す

あるファイルから別のファイルにデータを渡す簡単な方法はありますか?私は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); ?> 

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
4
Antti Koskinen

ヘッダーテンプレートで変数を global として宣言するだけで十分です。

<?php

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

?> 

独自のテンプレートをロードするものを作成する必要はありません(通常、これは悪い考えです)。

3
maryisdead