web-dev-qa-db-ja.com

アンカーとして使用するようにビューブロックID属性を変更する方法

メニューリンクで使用したid=block-views-block-services-block-1を含むビューブロックがあります。

メニューリンクは https://example.com/gb/#block-views-block-services-block-1 として表示されます。

ご覧のように、長いハイフンを使った単語では、見栄えはよくありません。このようなものに変更する簡単な方法はありますか https://example.com/gb/#services

Drupal 7の場合、IDを変更するためにtemplate.phpを編集する必要があります。しかし、Drupal 8では、template.phptwig.htmlに置き換えられます。Drupalを初めて使用するので、よくわかりません。

誰かがそれを行う方法のいくつかの手順を説明できますか?

1
Dee

この関数をthemes/YOURTHEME/YOURTHEME.themeファイルに配置する必要があります。

function YOURTHEME_preprocess_block(&$variables) {
  dump($variables);
}

ブロックの名前が表示されます。 block_html_idを探す必要があります。説明に基づいて、block_html_idの値はblock-views-block-services-block-1になります。

その後、次のように単純に定義できます。

function YOURTHEME_preprocess_block(&$variables) {
  if ($variables['block_html_id'] == "block-views-block-services-block-1") {
    $variables['block_html_id'] = "services";
  }
}

または、カスタムモジュールを作成して、この関数をそこに配置することもできます。その場合、YOURTHEMEをカスタムモジュールの名前に置き換える必要があります。

2
Zoltán Süle