如何正确显示功能结果

时间:2014-11-07 10:54:43

标签: php wordpress function template-engine

我需要编写可以发送电子邮件或短信的简单脚本。我需要获取函数结果并将其分配给某个变量。例如$ message = message();并在脚本中获取发送短信的$ message。

这是我的代码示例:

function message() { $argsvsq = array( 'date_query' => array(
    array(
        'year' => date( 'Y' ),
        'week' => date( 'W' ),
    ),
),
            'author__in' => array($_GET["sendtoid"]),
            'post_type' => 'ocinky',
            'meta_key' => 'wpcf-date',
            'orderby' => 'meta_value',
            'order' => 'DESC',
            'posts_per_page' => -1
             );

        $looper = new WP_Query( $argsvsq );
        // Start the Loop.
        while ( $looper->have_posts() ) : $looper->the_post(); $urok = types_render_field("urok", array("output"=>"HTML")); echo $urok; endwhile;

        }

这是我需要显示结果的行

$text_sms = iconv('windows-1251', 'utf-8', message() );

请帮助正确获取功能消息()的结果......非常感谢!

1 个答案:

答案 0 :(得分:2)

iconv将字符串作为第3个参数。你的message()函数不会返回任何内容。

您可以使用outputbuffering来解决这个问题:

function message() { $argsvsq = array( 'date_query' => array(
    array(
        'year' => date( 'Y' ),
        'week' => date( 'W' ),
    ),
),
    'author__in' => array($_GET["sendtoid"]),
    'post_type' => 'ocinky',
    'meta_key' => 'wpcf-date',
    'orderby' => 'meta_value',
    'order' => 'DESC',
    'posts_per_page' => -1
);
    ob_start();
    $looper = new WP_Query( $argsvsq );
    // Start the Loop.
    while ( $looper->have_posts() ) : $looper->the_post(); 
        $urok = types_render_field("urok", array("output"=>"HTML")); 
        echo $urok; 
    endwhile;

    return ob_get_clean();
}

可能可能只是追加并返回一个字符串而不是使用输出缓冲:

function message() { $argsvsq = array( 'date_query' => array(
    array(
        'year' => date( 'Y' ),
        'week' => date( 'W' ),
    ),
),
    'author__in' => array($_GET["sendtoid"]),
    'post_type' => 'ocinky',
    'meta_key' => 'wpcf-date',
    'orderby' => 'meta_value',
    'order' => 'DESC',
    'posts_per_page' => -1
);
    $return = ''
    $looper = new WP_Query( $argsvsq );
    // Start the Loop.
    while ( $looper->have_posts() ) : $looper->the_post(); 
        $urok = types_render_field("urok", array("output"=>"HTML")); 
        $return .= $urok; 
    endwhile;

    return $return;
}

但我不知道所有这些函数调用正在做什么(如果它们回应任何东西,你将需要使用第一种方法