主题选项多次回显

时间:2011-09-09 作者:gavsiu

我试图剥离“211主题选项”页面并添加我自己的字段更正:我在某个地方遵循了一个教程,但当我尝试回显数据时,它会出现多次。

这是我的主题选项。php:http://pastebin.com/HSZM56jA

我是这样回应的:

<?php
    $options = get_option(\'gavsiu_theme_options\');
    echo $options[\'message-primary\'];
    echo $options[\'message-secondary\'];
?>
它出现了11次。

这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。这是主要信息。这是第二条消息。

我检查了mySQL,数据保存了一次。保存句子时没有重复或错误。

print\\r$options显示它多次打印出数组,因此当我回显“message primary”时,它会回显每个数组中的每个匹配项。

我在头版回应了这一点。再次保存字段并没有改变任何内容。

正如我所说,它被正确地保存到数据库中。在里面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 个回复
最合适的回答,由SO网友:Milo 整理而成

这些选项在循环中输出,因此在循环的每次迭代中都会重复。

要在循环内进行检查并仅在第一次迭代时输出某些内容,请执行以下操作:

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;

结束