【问题标题】:Displaying the Value of an Incremental Variable {Variable} Outside the Function在函数外显示增量变量 {Variable} 的值
【发布时间】: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-&gt;tzDesc = $custom["slide{$i}-desc"]; 并使用&lt;?php $post-&gt;ns_tzDesc = $tzDesc; ?&gt; 来显示变量。这几乎有效,但它似乎失去了$i 变量,该变量定义了要返回的幻灯片描述(例如,slide1-desc 或 slide2-desc...),并且只返回每张幻灯片的最后一张幻灯片的值。

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

【问题讨论】:

    标签: php wordpress variables global-variables scope


    【解决方案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'];,您可以将 1 替换为所需的 $i 值

    【讨论】:

    • 2 个问题:1) 有没有办法让页面/幻灯片编号保持动态以便由函数填写?该功能是自动对幻灯片进行分页的功能。我的模板文件设置了一个通用模板,而不是每张幻灯片一个。 2)我应该把$x=paginate_slide('YOUR POST');放在哪里?
    【解决方案2】:

    为什么没有函数 return $i?

    【讨论】:

    • 当我这样做时,我松开了分页,它只显示一张幻灯片。
    • 好的,我将返回 $i 的位置移到了最后一个 { 之前的函数末尾,我将幻灯片放回原处,但每张幻灯片仍然显示相同的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2015-04-21
    • 2019-06-04
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多