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.6.x JavaScript 特定のformに動的にJavaScriptをロードする方法
フォーム 7.38 Views Views一覧の絞り込み検索フォームで複数フィールドを対象にしたい
フォーム 7.15 Webform Template Webformを複写したい
フォーム 8.6.x JavaScript 特定のformにJavaScriptを紐付ける方法
フォーム 7.38 Webform Webformモジュールをアップデートしたら「このフィールドを入力してください」
フォーム 7.43 Webform フォーム関数が実行されるタイミングについて
フォーム 8.7.x Webform WebformのCheckboxの要素にて表記の変更
フォーム 7.15 Webform Webformで確認画面
フォーム 7.15 system mail()での送信が失敗する
フォーム 7.15 Webform Webform - 確認ページの多言語化
パフォーマンス 7.34 Server お金をかけないで冗長化するには
ニュースレター 7.34 Simple news Simplenewsで追加顧客(リスト)だけにニュースレターを配信する方法
テーマ 8.3x Theme drupal8 で パスに応じたページテンプレート名を利用する方法
テーマ 8.9.x スマホに向いたテーマについて
テーマ 7.23 hook ページや状況によってテーマを切り替える
テーマ 8.3x Core Twig開発用の設定
テーマ 7.56 field レンダリング配列内に「ラベル非表示」を指定する方法
テーマ 7.15 CSS Injector 簡単にCSSを追加したい
テーマ 8.3x Block Cache Theme 管理ページから作成したカスタムブロックを非キャッシュ化する方法
テーマ 8.3x Contribute themes drupal8-寄贈テーマの動向

ページ