form in a .tpl.php file This is the code in my template.php file.

function studiga_theme_theme($existing, $type, $theme, $path) {    
    $items['add_property_form'] = array(
        'render element' =&gt; 'form',
        'template' =&gt; 'node--14',
        'path' =&gt; drupal_get_path('theme', 'studiga_theme') . '/templates/node',
    );

    return $items;
}


 function custom_add_property_form($form, &amp;$form_state) {
    $form['first_name'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('First name')),
    );
    $form['last_name'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('Last name')),
    );
    $form['address'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('Address')),
    );
    $form['city'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('City')),
    );
    $form['state'] = array(
        '#type' =&gt; 'select',
        '#options' =&gt; array(
            'default' =&gt; 'State',
            '...' =&gt; '...',
        ),
    );
    $form['zip'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('Zip')),
    );
    $form['email'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('Email')),
    );
    $form['phone'] = array(
        '#type' =&gt; 'textfield',
        '#attributes' =&gt; array('placeholder' =&gt; t('Phone')),
    );
    $form['submit'] = array(
        '#type' =&gt; 'submit',
        '#value' =&gt; 'Submit',
    );

    return $form;
}


This is the code in node--14.tpl.php.



        
            
                Contact Information
            
        

        
            
                
            
            
                
            
        

        
            
                
            

            
                
            
        

        
            
                
            

            
                
            

            
        

        
            
                
            

            
                
            
        
    

&lt;div class="row"&gt;
    &lt;div class="small-12 medium-12 large-8 large-offset-2 columns"&gt;
        &lt;?php print render($form['submit']); ?&gt;
    &lt;/div&gt;
&lt;/div&gt;




But no fields are appearing - what am I doing wrong? You can't have a straight forward  in a tpl.php file can you?
Given your definition of studiga_theme_theme(), Drupal will never call custom_add_property_form() because there isn't any relation between the theme template you define, and that function. Eventually, you could implement the preprocess function for that theme template, and set there a variable that is passed to the template.

function studiga_theme_preprocess_add_property_form(&amp;$variables) {
  $variables['form'] = /* define here the form */;
}


Now your theme template will get a $form variable. 

Keep in mind that, except in a case, themes don't define forms; that is the task for a module. Eventually, themes can alter a form provided by a module, but (generally speaking) you will never see a theme that defines a form that is not for its own settings.