How have multiple instances of a Custom Block?
Add the following function in your template.php   

function &lt;themeName&gt;_render_block($module, $delta, array $options = array()){
  $default_options = array(
    'title' =&gt; '&lt;none&gt;',
    'region' =&gt; -1,
  );

  $options = array_merge($default_options, $options);

  $block = db_query('SELECT * FROM {block} WHERE module = :module AND delta = :delta', array(':module' =&gt; $module, ':delta' =&gt; $delta))-&gt;fetchObject();
  if($block) {
    $block = block_load($module, $delta);
    $block-&gt;title = $options['title'];
    $block-&gt;region = $options['region'];
    $blocks = array($block);
    $rblocks = _block_render_blocks($blocks);
    $render_array = _block_get_renderable_array($rblocks);
    return drupal_render($render_array);
  }
  return "";
}


then when you want to render the block just write the following line

print render &lt;themeName&gt;_render_block($module_name, &lt;id of block&gt;, array of options like title etc)


You can find module name and block id by going to block configuration page so for the path
admin/structure/block/manage/views/locations-block_1/configure
module name is "views" and id is "location-block_1"

So the render function will be 

print render &lt;themeName&gt;_render_block("views", "location-block_1", array("title" =&gt; t("My block title")));