我有以下代码
function source2(){
?> <p>hello world</p> <?php
}
//add beore after content
function wpdev_before_after($content) {
$beforecontent = 'This goes before the content. Isn’t that awesome!';
$aftercontent = source2();
$fullcontent = $beforecontent . $content . $aftercontent;
return $fullcontent;
}
add_filter('the_content', 'wpdev_before_after');
&#13;
&#34; Hello World&#34;假设出现在内容之后。 但是,它显示在内容之前,甚至在$ beforecontent之前。 如果我插入纯文本而不是调用函数,它可以正常工作。 我怎样才能解决这个问题? 感谢
答案 0 :(得分:0)
希望您需要启动输出缓冲区并清除输出并再次打印。试试这个。
function source2(){
?> <p>hello world</p> <?php
}
//add beore after content
function wpdev_before_after($content) {
ob_start();
$beforecontent = 'This goes before the content. Isn’t that awesome!';
$aftercontent = source2();
$fullcontent = $beforecontent . $content . $aftercontent;
$fullcontent = ob_get_clean();
return $fullcontent;
}
add_filter('the_content', 'wpdev_before_after');
答案 1 :(得分:0)
以下是根据您的要求显示的输出的修改版本。你需要返回字符串以便连接它。除非返回字符串,否则不会显示。
输出:要显示的第一个文本/中心文本/最后一个文本
<?php
function source2(){
$string = 'Last Text to be displayed';
return $string;
}
//add beore after content
function wpdev_before_after($content) {
ob_start();
$beforecontent = 'First Text';
$aftercontent = source2();
$fullcontent = $beforecontent.$content.$aftercontent;
return $fullcontent;
}
add_filter('the_content', 'wpdev_before_after');
$word="/ Center Text /";
echo wpdev_before_after($word);
?>