Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在wordpress插件中将变量传递到模板文件_Php_Wordpress - Fatal编程技术网

Php 在wordpress插件中将变量传递到模板文件

Php 在wordpress插件中将变量传递到模板文件,php,wordpress,Php,Wordpress,在我的wordpress插件中,我有一个具有页面id的函数: public function create_view_for_pdf() { $page_id = $_POST['page_id']; $this->template_shortcode('template.php'); } 这里,template_shortcode函数包括一个位于插件目录文件夹中的模板 private function KendoPdf_template_shor

在我的wordpress插件中,我有一个具有页面id的函数:

public function create_view_for_pdf() {
        $page_id = $_POST['page_id'];
        $this->template_shortcode('template.php');
    }
这里,template_shortcode函数包括一个位于插件目录文件夹中的模板

private function KendoPdf_template_shortcode($template_name) {
        return include '/template/dir' . $template_name;
    }
在模板文件中,我希望传递页面id,以便在那里打印内容。我该怎么做?
注意:因为我只是包括模板文件,所以我想我通常会在那里得到$page_id变量。但它没有起作用。我需要模板文件中的页面id,因为内容将不同于实际页面。该页面也有ACF字段。我基本上是为pdf导出创建一个新模板。这就是为什么我不能使用该页面的所有内容。

如果我错了,请纠正我,但是如果页面id在$\u POST内,为什么要将其传递到模板文件?只需使用$_POST['page_id']访问变量即可;在模板文件中

除了包含模板文件之外,您还可以将其读入包含file\u get\u内容的字符串中;并在归还之前进行所需的更换

另一种可能是已经设置的全局变量:global$post

最后但并非最不重要的一点是,您可以在ob_start中使用输出缓冲;和连续函数


你看:有很多方法可以解决这个问题。

因为我只是包括模板文件,所以我想我通常会在那里得到$page\u id变量。但它没有起作用。我需要模板文件中的页面id,因为内容与实际页面不同。该页面也有ACF字段。我基本上是为pdf导出创建一个新模板。这就是为什么我不能使用该页面的所有内容。@Imrul.H当然可以,但为什么你不能使用我在这里描述的其中一种方法呢?我尝试了其他两种解决方案,但都无效。我在模板文件中尝试了这个方法:global$post;回显“post id:”。$post->id;这是行不通的。然后我还尝试在模板包含前后使用ob_start和ob_get_clean。这也无济于事。您可以尝试使用自定义全局设置吗?在包含模板之前,请执行以下操作:$page\u id=$\u POST['page\u id'];全局$template\u page\u id=$page\u id。。。。然后在模板内执行:全局$template\u page\u id;echo$template\u page\u id;成功了!但有一点变化。在包含文件之前:::code::global$pdf\u page\u id$pdf_page_id=$_POST['page_id'];::代码结束::。模板文件的代码与您的示例完全相同。谢谢: