Drupal template files are not recognized sites/all/modules/dc_wiwo
function dc_wiwo_theme($existing, $type, $theme, $path) {
  return array(
    'dc_wiwo_page' =&gt; array(
      'variables' =&gt; array('tweets' =&gt; array()),
      'template' =&gt; 'wiwo',
    ),
  );
}

function dc_wiwo_page() {
  return theme('dc_wiwo_page', array('tweets' =&gt; array()));
}

If I put a template file in sites/all/modules/dc_wiwo/wiwo.tpl.php it works, but if I put a file in sites/all/themes/media/wiwo.tpl.php it doesn't work. I thought you could override templates in the theme. Is there a setting I have to change to allow this?
By default, the template file is expected to be in the same directory containing the module or the theme which defines the theme function. To use a different path, in the hook_theme() implementation you need to use the path property, which is defined as:


  
  path: Override the path of the file to be used. Ordinarily the module or theme path will be used, but if the file will not be in the default path, include it here. This path should be relative to the Drupal root directory.
  


So, in your case the code should be similar to the following one, since you are using a theme.

function dc_wiwo_theme($existing, $type, $theme, $path) {
  return array(
    'dc_wiwo_page' =&gt; array(
      'variables' =&gt; array('tweets' =&gt; array()),
      'path' =&gt; drupal_get_path('theme', 'dc_wiwo') . '/media';
      'template' =&gt; 'wiwo',
    ),
  );
}


For a module, the code would not be much different.

function dc_wiwo_theme($existing, $type, $theme, $path) {
  return array(
    'dc_wiwo_page' =&gt; array(
      'variables' =&gt; array('tweets' =&gt; array()),
      'path' =&gt; drupal_get_path('module', 'dc_wiwo') . '/media';
      'template' =&gt; 'wiwo',
    ),
  );
}