Отображение значения инкрементной переменной {Variable} вне функции - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть следующая функция, которая устанавливает слайд-шоу в 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 );
    }
}

Я попытался определить переменные вне функции и объявить их в функции как глобальные, но, похоже, это не работает.

Я также попытался добавить одну из переменных к объекту $ post (определив $post->tzDesc = $custom["slide{$i}-desc"]; и используя <?php $post->ns_tzDesc = $tzDesc; ?> для отображения переменной. Это почти работает, но кажется, что теряется переменная $i, которая определяет, какое описание слайда нужно вернуть (например, slide1-desc или slide2-desc ...), и просто возвращает значение для последнего слайда для каждого слайда.

Как я могу отображать значения этих переменных и поддерживать инкрементный характер функции?

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

после $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

0 голосов
/ 08 декабря 2010

Почему у вас нет функции, возвращающей $ i?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...