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