У меня есть следующая функция, которая устанавливает слайд-шоу в 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 ...), и просто возвращает значение для последнего слайда для каждого слайда.
Как я могу отображать значения этих переменных и поддерживать инкрементный характер функции?