使用print\r时PHP函数的输出是如何工作的?

使用print\r时PHP函数的输出是如何工作的?,php,wordpress,Php,Wordpress,我正在尝试使用插件在wordpress页面中打印当前月份 function RSB_Archive_Function( $atts ) { $month = date('M'); $year = date('y'); $args = array( 'posts_per_page' => 10, 'offset' => 0, 'category' => '', 'orderby'

我正在尝试使用插件在wordpress页面中打印当前月份

function RSB_Archive_Function( $atts ) {

    $month = date('M');
    $year = date('y');

    $args = array(
    'posts_per_page'   => 10,
    'offset'           => 0,
    'category'         => '',
    'orderby'          => 'post_date',
    'order'            => 'DESC',
    'include'          => '',
    'exclude'          => '',
    'meta_key'         => '',
    'meta_value'       => '',
    'post_type'        => 'post',
    'post_mime_type'   => '',
    'post_parent'      => '',
    'post_status'      => 'publish',
    'suppress_filters' => true );   

    print_r($month);


} 

add_shortcode('rsb-archive', 'RSB_Archive_Function');
出于某种原因,当我在页面中插入短代码时,月份“Mar”会打印在页眉上方,也会打印在页面中?如图所示:


知道为什么会发生这种情况吗?

短代码函数应该返回值,而不是输出值。如果没有第二个参数,
print\u r
在调用时输出值

试一试


相反。虽然在这种情况下,我不认为打印是必要的;只需返回
$month

这与
php
无关,而是与内容(html)的结构和标记(css)以及调用此函数的时间(输出
print\r
文本)有关。您的问题到底是什么?您是否在问为什么输出打印在两个不同的位置而不是一个位置?谢谢,这非常有效。我没有意识到必须返回print_r值才能抑制输出。
return print_r($month, true);