【发布时间】:2010-12-08 17:09:13
【问题描述】:
我有以下在 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...),并且只返回每张幻灯片的最后一张幻灯片的值。
如何显示这些变量的值并保持函数的增量性质?
【问题讨论】:
标签: php wordpress variables global-variables scope