Php 在函数外部显示增量变量{Variable}的值

Php 在函数外部显示增量变量{Variable}的值,php,wordpress,variables,global-variables,scope,Php,Wordpress,Variables,Global Variables,Scope,我有以下功能,可以在Wordpress中设置幻灯片放映。它设置了几个依赖于另一个增量变量的变量$i。我试图找到一种方法,在我的模板文件中调用这些变量,以便它显示它们的值。我设想使用类似的东西 定义的变量如下所示:$tzDesc=$custom[“slide{$i}-desc”]其中它指的是保存在自定义字段中的值。每张幻灯片都有一个自定义字段,其名称相似,但增量数字不同,即$i。我可以将它们显示在这一行$page=“{$tzTitle}”并且它正确地显示在我的页面上,但是我希望能够更灵活地调用模板

我有以下功能,可以在Wordpress中设置幻灯片放映。它设置了几个依赖于另一个增量变量的变量
$i
。我试图找到一种方法,在我的模板文件中调用这些变量,以便它显示它们的值。我设想使用类似
的东西

定义的变量如下所示:
$tzDesc=$custom[“slide{$i}-desc”]其中它指的是保存在自定义字段中的值。每张幻灯片都有一个自定义字段,其名称相似,但增量数字不同,即
$i
。我可以将它们显示在这一行
$page=“{$tzTitle}”并且它正确地显示在我的页面上,但是我希望能够更灵活地调用模板文件不同部分中的值,而不必在函数的这一行中定义整个模板文件

以下是函数:

add_action( 'the_post', 'paginate_slide' );

function paginate_slide( $post ) {

    global $pages, $multipage, $numpages;

    if( is_single() && get_post_type() == 'post' ) {

    $multipage = 1;
    $id = get_the_ID();
    $custom = array();
    $pages = array();
    $i = 1;

    foreach( get_post_custom_keys() as $key )
        if ( false !== strpos( $key, 'slide' ) )
            $custom[$key] = get_post_meta( $id, $key, true);

    while( isset( $custom["slide{$i}-title"] ) ) {

        $page = '';
        $tzTitle = $custom["slide{$i}-title"];
        $tzImage = $custom["slide{$i}-image"];
        $tzDesc = $custom["slide{$i}-desc"];
        $tzEmbed = $custom["slide{$i}-embed"];

        $page = "<h2>{$tzTitle}</h2><img src='{$tzImage}' />";
        $pages[] = $page;
        $i++;
    }

    $numpages = count( $pages );
    }
}
add_action('the_post','paginate_slide');
功能分页幻灯片($post){
全局$pages、$multipage、$numpages;
如果(是单体()&&get\u post\u type()='post'){
$multipage=1;
$id=get_the_id();
$custom=array();
$pages=array();
$i=1;
foreach(获取自定义密钥()作为$key)
if(false!==strpos($key,'slide'))
$custom[$key]=get\u post\u meta($id,$key,true);
while(isset($custom[“slide{$i}-title”])){
$page='';
$tzTitle=$custom[“幻灯片{$i}-title”];
$tzImage=$custom[“幻灯片{$i}-image”];
$tzDesc=$custom[“幻灯片{$i}-desc”];
$tzEmbed=$custom[“幻灯片{$i}-embed”];
$page=“{$tzTitle}”;
$pages[]=$pages;
$i++;
}
$numpages=计数($pages);
}
}
我曾尝试在函数外部定义变量,并在函数中将它们声明为全局变量,但这似乎不起作用

我还有一个$post对象的变量(通过定义
$post->tzDesc=$custom[“slide{$I}-desc”];
并使用
来显示变量。这个几乎可以工作,但它似乎失去了定义要返回的幻灯片描述的
$I
变量(例如,slide1 desc或slide2-desc…)只返回每张幻灯片的最后一张幻灯片的值


如何显示这些变量的值并保持函数的增量性质?

$I++;
之后,请尝试以下操作:

$my_vars[$i]['tzTitle']=$tzTitle;
$my_vars[$i]['tzImage']=$tzImage;
$my_vars[$i]['tzDesc']=$tzDesc;
$my_vars[$i]['tzEmbed']=$tzEmbed;
然后在退出函数之前,只需返回$my_vars;
现在您可以调用函数
$x=paginate_slide(“您的帖子”);


然后使用
$x[1]['tzTitle'];
这样的值,您可以用所需的$i值替换1

为什么不让函数返回$i?

当我松开分页时,它只显示一张幻灯片。好的,我将返回$i的位置移到了上一张
之前的函数末尾{
我已经拿回了我的幻灯片,但每张幻灯片显示的值都一样。2个问题:1)有没有办法使页码/幻灯片编号保持动态,以便由函数填写?函数是自动为幻灯片分页的功能。我的模板文件设置了一个通用模板,而不是为每张幻灯片设置一个。2)我应该将
$x=paginate_slide(“您的帖子”);
放在哪里?