параметры темы повторяются несколько раз


Я попытался удалить страницу "Двадцать одиннадцать параметров темы" и добавить свои собственные поля исправление: я где-то следовал учебнику, но когда я пытаюсь повторить данные, они появляются несколько раз.

Вот мой 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.";}
Author: gavsiu, 2011-09-09

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;
 0
Author: Milo, 2011-09-11 16:13:44