bodyタグにnode idやaliasのClassを追加する方法

カテゴリ テーマ コアバージョン 8.4x 関連モジュール hook_preprocess_html
/**
 * Implements hook_preprocess_HOOK() for html.html.twig.
 */
function your_theme_preprocess_html(array &$variables) {
  $current_path = \Drupal::service('path.current')->getPath();
  $alias = explode('?', $_SERVER['REQUEST_URI']);
  $alias = $alias[0];

  // Node type.
  if (preg_match('!^/node/([0-9]+)!', $current_path, $m)) {
    $variables['attributes']->addClass("node--$m[1]");
  }

  // Alias.
  if ($alias) {
    $aliases = explode('/', $alias);
    array_shift($aliases);
    $suggestion = [];
    foreach ($aliases as $a) {
      $suggestion[] = $a;
      $variables['attributes']->addClass(implode('--', $suggestion));
    }
  }
}

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver.昇順で並び替える 関連モジュール タイトル
コンテンツの作成 8.4x json jQueryにjsonで渡す方法
video 8.4x video map 動画上にクリッカブルマップを作成する方法
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法
Views 8.4x hook_views_query_alter Viewsクエリの条件式にサブクエリを追加する方法
Initial 8.4x Subscriber hook_init() 〜 drupal_goto() を drupal8でやる方法
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
テーマ 8.3x Theme drupal8 で パスに応じたページテンプレート名を利用する方法
テーマ 8.3x Core Twig開発用の設定
PHP 8.3x PHP drupa8でhook_init()する方法
テーマ 8.3x Block Cache Theme 管理ページから作成したカスタムブロックを非キャッシュ化する方法
拡張機能 8.3x Contribute modules drupal8-寄贈モジュールの動向
Custom module 8.3x Custom module Twig Block Cache カスタムモジュールのレンダリングを非キャッシュ化する方法
テーマ 8.3x Contribute themes drupal8-寄贈テーマの動向
サイトの構築 8.3x Webform Webformモジュール メールアドレスの入力ミス確認
Proxy 7.59 Proxy Apache settings.php リバースプロキシ(Apache)+バックグランドWeb(Drupal 7 )でログインセッションを維持する方法
サイトの環境設定 7.59 さくらのレンタルサーバー php Options さくらのレンタルサーバーで パブリック/プライベートディレクトリにファイルが書き込まれないとき
サイトの構築 7.59 Drupal.ajax drupal 7 で Uncaught TypeError: Drupal.ajax is undefined となったときの対応方法
ユーザの管理 7.59 user pass drupal 7 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
テーマ 7.56 field レンダリング配列内に「ラベル非表示」を指定する方法
drush 7.54 Drush Drushでdrupalサイトをインストールする方法

ページ