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

时间:2010-12-08 17:09:13

标签: php wordpress variables global-variables scope

我有以下在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 ...)并且只返回最后一张幻灯片的值每张幻灯片。

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

2 个答案:

答案 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?