我有以下在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 );
}
}
我已经尝试在函数外部定义变量,并在函数中将它们声明为全局变量,但这似乎不起作用。
我还有tried adding $ post对象的变量之一(通过定义$post->tzDesc = $custom["slide{$i}-desc"];
并使用<?php $post->ns_tzDesc = $tzDesc; ?>
来显示变量。 几乎 有效,但它似乎松开了$i
变量,该变量定义了要返回的幻灯片描述(例如,slide1-desc或slide2-desc ...)并且只返回最后一张幻灯片的值每张幻灯片。
如何显示这些变量的值并保持函数的增量性质?
答案 0 :(得分:1)
在$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)
为什么你没有函数返回$ i?