diff --git a/ds.module b/ds.module
index 7502e5f..2920255 100644
--- a/ds.module
+++ b/ds.module
@@ -810,6 +810,29 @@ function ds_entity_variables(&$vars) {
       $vars['layout_attributes'] .= ' ' . drupal_attributes($vars['attributes_array']);
     }
 
+    // Add an onclick attribute on the wrapper.
+    if (!empty($layout['settings']['layout_link_attribute'])) {
+      $url = '';
+      switch ($layout['settings']['layout_link_attribute']) {
+        case 'content':
+          $uri = entity_uri($vars['elements']['#entity_type'], $vars[$object]);
+          if (!empty($uri)) {
+            $url = $uri['path'];
+          }
+          break;
+        case 'custom':
+          $url = $layout['settings']['layout_link_custom'];
+          break;
+        case 'tokens':
+          $url = token_replace($layout['settings']['layout_link_custom'], array($vars['elements']['#entity_type'] => $vars[$object]));
+          break;
+      }
+
+      if (!empty($url)) {
+        $vars['layout_attributes'] .= ' onclick="location.href=\'' . url($url) . '\'"';
+      }
+    }
+
     // Let other modules alter the ds array before creating the region variables.
     $context = array('entity' => isset($vars[$object]) ? $vars[$object] : (isset($vars['elements']['#' . $object]) ? $vars['elements']['#' . $object] : ''), 'entity_type' => $vars['elements']['#entity_type'], 'bundle' => $vars['elements']['#bundle'], 'view_mode' => $vars['elements']['#view_mode']);
     drupal_alter('ds_pre_render', $layout_render_array, $context);
diff --git a/includes/ds.field_ui.inc b/includes/ds.field_ui.inc
index c38c1ef..edc0d53 100644
--- a/includes/ds.field_ui.inc
+++ b/includes/ds.field_ui.inc
@@ -581,6 +581,8 @@ function ds_field_ui_layouts_save($form, &$form_state) {
     $record->settings['layout_wrapper'] = 'div';
     $record->settings['layout_attributes'] = '';
     $record->settings['layout_attributes_merge'] = variable_get('ds_layout_attributes_merge', TRUE);
+    $record->settings['layout_link_attribute'] = FALSE;
+    $record->settings['layout_link_custom'] = '';
     $fields = _ds_sort_fields($form_state['values']['fields'], 'weight');
     foreach ($fields as $field_key => $field) {
 
@@ -665,6 +667,10 @@ function ds_field_ui_layouts_save($form, &$form_state) {
     $record->settings['layout_attributes'] = filter_xss_admin($form_state['values']['additional_settings']['region_wrapper']['layout_attributes']);
     $record->settings['layout_attributes_merge'] = $form_state['values']['additional_settings']['region_wrapper']['layout_attributes_merge'];
 
+    // Link attribute.
+    $record->settings['layout_link_attribute'] = $form_state['values']['additional_settings']['region_wrapper']['layout_link_attribute'];
+    $record->settings['layout_link_custom'] = $form_state['values']['additional_settings']['region_wrapper']['layout_link_custom'];
+
     $record->settings = $record->settings;
 
     // Let other modules alter the layout settings.
@@ -1535,6 +1541,54 @@ function _ds_field_ui_table_layouts($entity_type, $bundle, $view_mode, &$form, $
       '#weight' => 12,
     );
 
+    $form['additional_settings']['region_wrapper']['layout_link_attribute'] = array(
+      '#type' => 'select',
+      '#options' => array(
+        '' => t('No link'),
+        'content' => t('Link to content'),
+        'custom' => t('Custom'),
+        'tokens' => t('Tokens')
+      ),
+      '#title' => t('Add link'),
+      '#description' => t('This will add an onclick attribute on the layout wrapper.'),
+      '#default_value' => isset($layout->settings['layout_link_attribute']) ? $layout->settings['layout_link_attribute'] : FALSE,
+      '#weight' => 12,
+    );
+
+    $form['additional_settings']['region_wrapper']['layout_link_custom'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Custom link'),
+      '#description' => t('You may use tokens for this link if you selected tokens.'),
+      '#default_value' => isset($layout->settings['layout_link_custom']) ? $layout->settings['layout_link_custom'] : FALSE,
+      '#weight' => 13,
+      '#states' => array(
+        'visible' => array(array(
+          ':input[name="additional_settings[region_wrapper][layout_link_attribute]"]' => array(array("value" => "tokens"), array("value" => "custom")),
+        )),
+      ),
+    );
+
+    if (module_exists('token')) {
+      $form['additional_settings']['region_wrapper']['tokens'] = array(
+        '#title' => t('Tokens'),
+        '#type' => 'container',
+        '#weight' => 14,
+        '#states' => array(
+          'visible' => array(
+            ':input[name="additional_settings[region_wrapper][layout_link_attribute]"]' => array(array("value" => "tokens")),
+          ),
+        ),
+      );
+      $form['additional_settings']['region_wrapper']['tokens']['help'] = array(
+        '#theme' => 'token_tree',
+        '#token_types' => 'all',
+        '#global_types' => FALSE,
+        '#dialog' => TRUE,
+      );
+    }
+
+
+
     // Add extra classes for the regions to have more control while theming.
     $form['additional_settings']['ds_classes'] = array(
       '#type' => 'fieldset',
