函数返回结果两次

Function returning results twice

我正在使用 Wordpress 并构建了一个自定义 post 类型 return post 中逗号分隔列表中的选项列表,然后在中创建一组复选框联系表格 7 表格。该函数正在运行,但由于某种原因,它 return 输出了两次。我正在想办法让它只 return 一次。

wpcf7_add_shortcode('cargooptions', 'createbox', true);
function createbox(){

    global $post;

    $model = $_GET['mz'];


$args = array(
'post_type' => 'options',
'tax_query' => array(
    'relation' => 'AND',
    array(
        'taxonomy' => 'Opts_category',
        'field'    => 'slug',
        'terms'    => strtolower($model)

    ),  
),

);

$myposts = get_posts( $args );


foreach ( $myposts as $post ) : setup_postdata($post);


        $options = explode(',', get_the_content());

        // output list
        foreach ($options as $key => $value){

            $output .= '<input type="checkbox" name="option_'.$key.'" value="'.$value.'" id="opt'.$key.'" class="optionSelect">';
            $output .= '<label for="opt'.$key.'"  class="span_4 colWrap"><span></span> ' . trim($value) . '</label>';
        }

    endforeach;
return $output;

参见下面的代码。 您需要在循环之前实例化 $output 变量,否则它将在主循环中附加到自身。

foreach ( $myposts as $post ) : setup_postdata($post);


        $options = explode(',', get_the_content());

        // output list
        $output = ''; // add this here so it doesn't append to itself
        foreach ($options as $key => $value){

            $output .= '<input type="checkbox" name="option_'.$key.'" value="'.$value.'" id="opt'.$key.'" class="optionSelect">';
            $output .= '<label for="opt'.$key.'"  class="span_4 colWrap"><span></span> ' . trim($value) . '</label>';
        }

    endforeach;
return $output;