Drupal hook_theme() Template Issue I am creating a block and I cannot get it to render correctly. I need to render a list of links but it is not working and it is showing nothing on the page. 

I have the hook_theme() function like this: 

function list_city_theme() {
  return array(
    'list_city_display' =&gt; array(
      'variables' =&gt; array(
        'title' =&gt; NULL,
        'locations' =&gt; NULL
      ),
      'template' =&gt; 'filter-by-city--display.tpl.php',
    ),
  );
}


And heres where i'm trying to set the theme inside the block view function:

$args = array(
  'title' =&gt; 'Filter by Town / City',
  'locations' =&gt; $locations
);
$block['content'] = theme('list_city_display', $args);
It is working for me. I have created a module called testtheme and mytemplate.tpl.php file is under testtheme/templates/.

Please try following sample code
    

/**
 * Implements hook_block_info().
 */
function testtheme_block_info() {
  $blocks['testtheme'] = array(
    'info' =&gt; t('Test Theme'),
    'cache' =&gt; DRUPAL_NO_CACHE,
  );
  return $blocks;
}

/**
 * Implements hook_block_view().
 */
function testtheme_block_view($delta=0) {
  $black = array();
  if ($delta == 'testtheme') {
    $block['subject'] = t('Test Theme');
    $args = array(
      'title' =&gt; 'Filter by Town / City',
      'locations' =&gt; 'Bangalore',
    );
    $block['content'] = theme('list_city_display', $args);
  }
  return $block;
}

/**
 * Implements hook_theme().
 */
function testtheme_theme() {
  $path = drupal_get_path('module', 'testtheme');
  return array(
    'list_city_display' =&gt; array(
      'variables' =&gt; array(
        'title' =&gt; NULL,
        'locations' =&gt; NULL
      ),
      'template' =&gt; 'mytemplate',
      'path' =&gt; $path . '/templates',
      'type' =&gt;'theme',
    ),
  );
}