параметры темы повторяются несколько раз
Я попытался удалить страницу "Двадцать одиннадцать параметров темы" и добавить свои собственные поля исправление: я где-то следовал учебнику, но когда я пытаюсь повторить данные, они появляются несколько раз.
Вот мой theme-options.php : http://pastebin.com/HSZM56jA
Вот как я повторяю это:
<?php
$options = get_option('gavsiu_theme_options');
echo $options['message-primary'];
echo $options['message-secondary'];
?>
Это выходит 11 раз.
Это главное послание.Это вторичное сообщение. Это и есть главное послание.Этот это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это и есть главное послание.Это вторичное сообщение. Это главное сообщение.Это вторичное сообщение.
Я проверил MySQL, и данные сохраняются один раз. При сохранении предложений нет дублирования или ошибок.
Параметры Print_r$ показывают, что он выводит массив много раз, поэтому, когда я повторяю "основное сообщение", он повторяет каждое совпадение из каждого массива.
Я повторяю это на первой странице. Повторное сохранение полей ничего не изменило.
Как я уже сказал, он правильно сохранен в базе данных. В wp_options
> gavsiu_theme_options
:
a:2:{s:15:"message-primary";s:25:"This is the main message.";s:17:"message-secondary";s:30:"This is the secondary message.";}
1 answers
Параметры выводятся в цикле, поэтому повторяются для каждой итерации цикла.
Чтобы проверить в цикле и вывести что-то только на первой итерации:
while ( have_posts() ) : the_post();
if( $wp_query->current_post == 0 ):
// this is the first post
// output your options
endif;
// other loop stuff, title, content, etc.
endwhile;
Аналогично, чтобы проверить, находитесь ли вы на последнем посте цикла:
while ( have_posts() ) : the_post();
if( $wp_query->current_post == ( $wp_query->post_count - 1 ) ):
// this is the last post
endif;
endwhile;