我已经为站点地图页面创建了一个短代码。当我在页面上进行更改并单击更新时,我会收到一个标题已发送错误。下面是我的短代码和两条错误消息。我想知道我是否需要工作ob_start()
和ob_get_clean()
但我不是百分之百肯定它应该如何格式化。
function site_map2( $atts ) {
$atts = shortcode_atts(
array(
\'exclude\' => \'\',
), $atts );
return \'<ul>\' . wp_list_pages(\'exclude=\' . $atts[\'exclude\'] . \'&sort_column=post_title&title_li=\') . \'</ul>\';
}
add_shortcode( \'SiteMap2\', \'site_map2\' );
以下是错误消息:
警告:无法修改标题信息-标题已由/public\\u html/wp admin/post中的(输出开始于/public\\u html/wp includes/post template.php:1205)发送。php在线197
警告:无法修改标题信息-标题已由/public\\u html/wp includes/plugable中的(输出开始于/public\\u html/wp includes/post template.php:1205)发送。php在线1167
最合适的回答,由SO网友:brandozz 整理而成
下面对我的函数进行的调整修复了这个问题,但我想确保这是处理短代码的正确方法。我添加了ob\\u start();和ob\\u get\\u clean();到函数。这是处理这种事情的正确方法吗?
function site_map2( $atts ) {
$atts = shortcode_atts(
array(
\'exclude\' => \'\',
), $atts );
ob_start();
echo \'<ul>\' . wp_list_pages(\'echo=false\' . \'&exclude=\' . $atts[\'exclude\'] . \'&sort_column=post_title&title_li=\') . \'</ul>\';
return ob_get_clean();
}
add_shortcode( \'SiteMap2\', \'site_map2\' );