Wordpress在内容后添加功能

时间:2016-08-15 03:50:32

标签: php wordpress

我有以下代码



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;
&#13;
&#13;

&#34; Hello World&#34;假设出现在内容之后。 但是,它显示在内容之前,甚至在$ beforecontent之前。 如果我插入纯文本而不是调用函数,它可以正常工作。 我怎样才能解决这个问题? 感谢

2 个答案:

答案 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);
?>