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.9.x CKEditor CKEditor編集中の見た目をフロントと全く同様にする方法
コンテンツの作成 6.x Views カルーセルのように回転するコンテンツを作りたい
コンテンツの作成 8.4x node node保存前に色々やる方法
コンテンツの作成 7.23 maxlength テキストフィールドの最大長のチェック&カウントダウン
コンテンツの作成 8.4x json jQueryにjsonで渡す方法
コンテンツの作成 7.38 node form ノード編集フォームをテーブル表示形式にしたい
コンテンツの作成 8.9.x node ノード保存時の前回値の参照方法
アップデート 8.9.x composer patch patch を composer に 組み込む方法
アップデート 8.9.x Composer update Composer で drupal/core-8.9.7 に更新できなくなった場合の処置
アップデート 8.9.x PHP CentosでPHPのバージョンアップ(例:5.3->5.6)を行う方法
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
アップデート 7.34 Core 簡単にCoreのセキュリティアップデートがしたい
アップデート 8.7.2 menu drupal-core 8.7.2にupdateしたところ
アップデート 7.16 Core 7.15→7.16アップデート
アップデート 8.9.x Composer update composer update するときに パッチが必要なモジュールが更新されパッチが消えてしまうことへ対応する方法
アップデート 7.15 Webform Backup_and_Migrate drupal7.12 -> drupal7.14アップデートメモ
アップデート 7.28 Views Pagerが表示されなくなった
アップデート 8.8.x Composer composer updateが異常終了する
アップデート 7.34 Distribution(Commerce Kickstart) drushでcommerce_kickstartのアップデートに失敗する
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある

ページ