Obtener IDs usando preprocess function Drupal 7/8/9

Instrucciones

Para utilizar una preprocess_function:

  1. Necesitarás tener instalado un subtheme a partir de un Tema base (Nunca modifiques archivos directamente en el tema base)
     
  2. Busca el archivo "nombre_subtheme.theme".
     
  3. Copia una de las opciones que está debajo para aplicarlas en tu Drupal.
Código
//Drupal 7 template_preprocess_node

function mytheme_preprocess_node(&$vars) {
  // Get the node ID.
  $nid = $vars['node']->nid;

  // Get the author ID.
  $uid = $vars['node']->uid;
}

//Drupal 8 template_preprocess_node

function mytheme_preprocess_node(&$vars) {
  // Get the node ID.
  $nid = $vars['node']->id();

  // Get the author ID.
  $uid = $vars['node']->getOwnerId();
}

//Desde otros lugares en el flujo de preproceso, deberá hacer un poco más si desea obtener el objeto de nodo, por ejemplo:

//Drupal 7 template_preprocess_html
function mytheme_preprocess_html(&$vars) {
  $menu_object = menu_get_object();
  if (is_object($menu_object) && property_exists($menu_object, 'nid')) {
    $nid = $menu_object->nid;
  }
}

//Drupal 8 template_preprocess_html
function mytheme_preprocess_html(&$vars) {
  $node = \Drupal::request()->attributes->get('node');
  $nid = $node->id();
}

Snippet relacionados