短码输出始终显示在页面顶部

时间:2012-10-10 作者:Nisha_at_Behance

我的短代码输出不会显示在我放置的位置,而是显示在内容的顶部(文章/页面内容的顶部)。

这是我的密码

function service_shortcode_index() {
global $content;
$output = include ( TEMPLATEPATH . \'/service.php\' );
return $output;
}

add_shortcode(\'service_mid\', \'service_shortcode_index\');
在“service.php”中有一些带有小部件的常规HTML列表

内容显示正确,只是位置错误。

2 个回复
最合适的回答,由SO网友:Joseph Leedy 整理而成

我想你的问题是$output = include .... 陈述include() 根据是否成功返回true或false,而不是要包含的文件的内容。使用输出缓冲来获取内容。

function service_shortcode_index() {
    global $content;
    ob_start();
    include ( TEMPLATEPATH . \'/service.php\' );
    $output = ob_get_clean();
    return $output;
}

add_shortcode(\'service_mid\', \'service_shortcode_index\');

SO网友:pbhj

问题是PHP function include (粗略地说)回显内容,然后返回布尔值。

如果您切换include 对于file_get_contents 然后你的$output 将是文件内容的字符串,而不是指示包含成功的布尔值。

Wordpress5适合我。2和;PHP7。

结束

相关推荐

PHP Widget and do_shortcode

我正在使用PHP小部件,它允许PHP代码从小部件执行。我尝试使用此代码执行do\\u shortcode,但它没有呈现<?php $lat = get_field(\'woo_maps_lat\'); $long = get_field(\'woo_maps_long\'); echo do_shortcode(\'[forecast location=\"\' . $lat .\',\'.$long. \'\" measurement=\\\'C\\\']\');