Specifying parameters for block_load UPDATE: Following Shawn Conn's advice I was able to render a specific block changing

$res_output = drupal_render($res_output);


to

$res_output = drupal_render($output);


But I'm still unable to render a Book Navigation block. I was able to figure out how to render a specific block using the url to it's management page. On a block with the url

https://example.com/admin/structure/block/manage/block/103/configure


I used

$block = block_load('block', '103');


and that worked. However based on 

https://example.com/admin/structure/block/manage/book/navigation/configure


I tried 

$block = block_load('block', 'navigation');


and

$block = block_load('book', 'navigation');


and 

$block = block_load('block', 'book','navigation');


with no luck.



I'm attempting to load a Book Navigation block programmatically inside another block. After doing some research it seems that I need to take advantage of the bload_load function. I'm using

$block = block_load('book', 'navigation');
$output =_block_get_renderable_array(_block_render_blocks(array($block)));
$res_output = drupal_render($res_output);
print render($res_output);


However there is no output. I have a feeling that the parameters for block_load are incorrect. I based them off of what the URL contained

/admin/structure/block/manage/book/navigation/configure
The problem isn't with block_load(); you've specified the correct parameters with the function (the module is 'block' &amp; the delta for the block is 'navigation'). The problem is your typo prevents the render array going to the print_render(). It should be:

$res_output = drupal_render($output);