Show block for specific content type programmatically
If you look at the node_module file it controls the node type visibility using the hook_block_list_alter.

So basically it might looks something like this.
NOTE: This is a non tested version.

function hook_block_list_alter(&amp;$blocks) {
  $node = menu_get_object();
  // list of all block deltas u want to apply this 
  $block_delta = array('deltas');
  foreach ($blocks as $key =&gt; $block) {
     if (!empty($node) &amp;&amp; $node-&gt;type == 'page' &amp;&amp; in_array($key, $block_delta)) {
       unset($blocks[$key]);
       continue;
     }
  } 
}