You are passing show_blog_posts
two parameters…
$str .= show_blog_posts($post->ID, '');
… but you have defined it to accept none…
function show_blog_posts() {
There seems to be some disconnect between your two blocks of code. I’d suggest actually passing the $post
object the way that you are trying to.
function show_blog_posts($post = NULL) {
global $blog, $posts;
if (empty($post)) {
global $post;
}
// the rest of your function
No idea what that second parameter is supposed to be.