在函数之外显示增量变量{变量}的值

问题描述:

我有以下函数在Wordpress中设置幻灯片。它设置了几个依赖于另一个增量变量$i的变量。我试图找到一种方法在我的模板文件中调用这些变量,以便显示它们的值。我正在设想使用类似<?php echo $tzDesc; ?>的东西。在函数之外显示增量变量{变量}的值

定义的变量如下所示:$tzDesc = $custom["slide{$i}-desc"];它指的是保存在自定义字段中的值。每张幻灯片都有一个类似名称的自定义字段,只是增量值不同,值为$i。我可以将它们显示在这里$page = "<h2>{$tzTitle}</h2><img src='{$tzImage}' />";这一行,它正确地显示在我的页面上,但是我希望更灵活地调用我的模板文件不同部分的值,而不必在函数的该行中定义整个模板文件。

下面是函数:

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); 
    } 
} 

我试图定义变量的功能之外,在功能全球宣布他们,但似乎并没有工作。

我还通过定义$post->tzDesc = $custom["slide{$i}-desc"];并使用<?php $post->ns_tzDesc = $tzDesc; ?>以显示可变tried adding变量到$交对象(之一,这几乎作品,但它似乎松$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; 

然后就return $my_vars; 现在退出函数之前,你可以调用函数$x=paginate_slide('YOUR POST');

,并使用值$x[1]['tzTitle'];在那里你可以期望$ I

值更换1次
+0

2个问题:1)有什么办法让页面/幻灯片编号保持动态,以便它被函数填充?该功能是自动分页幻灯片的功能。我的模板文件设置了一个通用模板,而不是每个幻灯片。 2)我应该在哪里放$ x = paginate_slide('你的POST');`? – mattz 2010-12-08 17:38:09

为什么你没有函数返回$ i?

+0

当我这样做时,我松开了分页,它只显示一张幻灯片。 – mattz 2010-12-08 17:31:21