Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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 如何使用get_template_part传递变量_Php_Wordpress_Wordpress Theming - Fatal编程技术网

Php 如何使用get_template_part传递变量

Php 如何使用get_template_part传递变量,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我在WordPress网站上有三种类型的帖子(标准、旁白、视频)。 我需要在我的标准content.php文件中计算一个变量,如$row,但我无法将其传递到content.php文件 我的index.php文件代码: <?php if (have_posts()) : $$row = 2; while (have_posts()) : the_post(); get_template_part('content',

我在WordPress网站上有三种类型的帖子(标准、旁白、视频)。 我需要在我的标准
content.php
文件中计算一个变量,如
$row
,但我无法将其传递到
content.php
文件

我的
index.php
文件代码:

<?php if (have_posts()) : 
           $$row = 2;
            while (have_posts()) : the_post();

            get_template_part('content', get_post_format());
            $row++;
            endwhile;
           endif; ?>
<div>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <p><?php the_content(); ?>- <?php echo $row; ?></p>
</div>
但当我
echo$row时没有显示任何内容


我已经使用了这个链接,但是我不能更改我的post格式文件,有其他方法吗?

您不能准确地传递参数,但是您可以使用函数
set\u query\u var
get\u query\u var
,这使得变量可以全局访问

在主模板(例如index.php)中,使用
set\u query\u var
设置变量。请注意,第一个参数是全局变量的名称,这是用于检索它的名称,而不是原始参数名称

set_query_var( "my_global_var_name", $param_vaule); 
get_template_part('content', get_post_format());
然后,在模板部分,您可以使用
get\u query\u var
获取now全局变量的值,例如

$myvar = set_query_var( "my_global_var_name" ); 
(值得注意的是,它的最佳实践是最小化全局变量,因此您可能正在重新构建模板结构,看看是否有其他方法可以做到这一点,例如使用额外的模板部件。)

参考文献:


我只想指出,从WordPress 5.5开始,现在可以传递变量了。以下是发布公告:@ChrisHaas关于时间:)感谢您提供的信息!