获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

时间:2010-12-06 作者:matt

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。

add_action( \'the_post\', \'paginate_slide\' );

function paginate_slide( $post ) {

    global $pages, $multipage, $numpages;

    if( is_single() && get_post_type() == \'lom_slideshow\' ) {
    $prefix = "slide{$i}";
    $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"] ) ) {

    $hide = $custom["slide{$i}-hide"];
    $slidetype = $custom["slide{$i}-slidetype"];

    if( \'on\' == $hide ) {
    $i++;
    continue;
                        }

        $page = \'\';
        $title = $custom["slide{$i}-title"];
        $image = $custom["slide{$i}-image"];
        $desc = $custom["slide{$i}-desc"];
        $embed = $custom["slide{$i}-embed"];
        if(isset($image))
        $imgdisplay = "<img src=\'{$image}\' />";
        else
        $imgdisplay = \'\';

    if( \'Video\' == $slidetype ) 

        $page = "<div class=\'media-title\'><h2>{$title}</h2></div><div class=\'media-image\'>{$embed}</div><div class=\'media-desc\'></div>";
    else
        $page = "<div class=\'media-title\'><h2>{$title}</h2></div><div class=\'media-image\'>{$imgdisplay}</div><div class=\'media-desc\'>{$desc}</div>";
        $pages[] = $page;
        $i++;
    }
    $numpages = count( $pages );
    }
}
此部分显示输出:

$page = "<div class=\'media-title\'><h2>{$title}</h2></div><div class=\'media-image\'>{$embed}</div><div class=\'media-desc\'></div>";
它显示在那里the_content 在我的模板中调用。而不是在我的功能中把各个部分放在一起。php我希望能够在我的自定义帖子模板中直接调用每一篇文章。例如<?php echo $desc; ?> 在我希望显示说明的模板文件中<?php echo $title; ?> 我希望标题显示的位置。

我尝试了几种不同的方式,但没有任何东西可以展示。

Without starting over from scratch or redesigning my whole template how can I make these variable more modular (able to be placed at will within my template)?

1 个回复
SO网友:mtekk

你需要做的是$page$pages 变量,并对$desc 变量(以及要在函数外部访问的任何其他变量)。

您需要一个全局$descs 这将是一个数组,您将在其中$desc 值,使用类似$descs[] = $desc; 就在代码之后$pages[] = $page;. 然后您可以访问$descs 在函数之外,请记住它是一个数组。

通常,您需要声明$desc 作为模板文件中的全局文件,您要在中使用它,例如,您需要使用以下内容:

<?php global $desc;
echo $desc;?>
最好使用一个返回或回显$desc 变量并从模板文件中调用,例如,在函数中放置类似的内容。php:

function foo_bar()
{
$custom[$key] = get_post_meta( $id, $key, true);
return $custom["slide{$i}-desc"];
}
然后在模板文件中使用以下内容:

<?php echo foo_bar();?>
注意,这个包装函数不会按原样工作,因为它看起来像是从PHP循环构造中获取了一些东西。您可能需要将$id、$key、$i和$custom传递给函数,或者在函数中将它们声明为全局变量。在不了解背景的情况下,我无法告诉你哪种方式更适合你。

结束

相关推荐