こんにちは大野です。今回はかなりのDrupalサイトで利用されている、Pathautoモジュールについて解説します。
PathautoモジュールはコアのPathモジュールを利用して、ある一定の条件に沿って自動的にURLのエイリアス(別のパス)を生成するモジュールです。
URLエイリアスやPathモジュールが解らない場合はこちらの紹介ページを参考にしていただければと思います。
Pathautoモジュールでできること
Pathautoは標準で以下のURLエイリアスを自動的に生成することができます。
- ノードコンテンツパス
- タクソノミータームパス
- ユーザーパス
インストール
PathautoモジュールはコアモジュールのPathと、コントリビュートモジュールのTokenに依存しているので、Tokenモジュールは別途インストールしておく必要があります。各種モジュールのインストール方法については弊社後藤の記事が参考になるかと思います。
Tokenモジュールについて
Pathautoモジュールの設定に少しTokenモジュールの知識が必要となるのでサラッと説明します。
TokenモジュールはDrupal内のエンティティから様々なデータを取得し、連携しているモジュール(今回の場合はPathauto)へデータを受け渡すためのモジュールです。簡単に言うと、投稿された記事などから様々なデータを取り出して使えるようにするためのモジュールです。
設定例
それでは実際に設定してみましょう。今回はコンテンツタイプがArticleで、コンテンツが作成させれた際にURLが node/NID から、article/NID になるようにしてみます。
管理画面から 環境設定 > URLエイリアス > パターン へ移動してください。
デフォルトのパスパターン(下記でパターンが空欄になっているすべてのコンテンツタイプに適用)と書かれた場所は、下記で設定されたパターンに一致しなかった場合に利用されるものです。
デフォルトでは content/[node:title] となっていますが、これは自動作成されるエイリアスが contentn/ノードのタイトル と言う意味になります。しかし、タイトルに日本語のタイトルが含まれていると、URLがエンコードされてしまい文字数が非常に長くなるので、それが嫌な場合はDefault path patternのフィールドを空白にし、自動生成されないようにしてください。
今回はコンテンツタイプがArticleの場合のみURLエイリアスを設定したいので、Pattern for all Article pathsのフィールドに以下のように設定します。
article/[node:nid]
ちなみに article/年-月-日 の様なフォーマットにしたい場合はこのようにします。
article/[node:created:custom:Y-m-d]
その他にも、様々な利用できるデータが用意されているので、興味がある方は置換パターンを開いてデータを探してみてください。
最後に「設定を保存」を押せば完了です。
Note: PathautoはURLエイリアスが重複してしまう場合、エイリアスの末尾に自動的に連番を付けてくれます。
ノードを作成してみる
では、実際にコンテンツを追加してURLエイリアスが自動的に生成されているか確認してみます。
コンテンツの追加からArticleを選び、コンテンツの作成画面を開きます。
URSエイリアスの設定にある、Generate automatic URL aliasにチェックが入っているか確認してください。このオプションはPathautoモジュールで自動的にURLを生成すると言うことを意味しています。
保存ボタンを押してURLが自動的に作成されたか確認してみましょう。
以上がノードコンテンツで自動的にURLエイリアスを作る時の例です。
環境設定
環境設定ページでは、URLエイリアスを生成する際の様々なオプション設定をすることができます。
英語タイトルでURLを生成する際の機能が良くできているのですが、残念ながら日本語タイトルではうまく利用することが出来ません。
その他の設定の説明については、フォームに詳しく意味が書かれているのでこの記事では割愛します。
一括でURLエイリアスを更新
PathautoモジュールにはURLエイリアスが付けられていないノードコンテンツなどのエンティティに対して、一括で更新できる機能が備わっています。
管理画面から 環境設定 > URLエイリアス > 一括更新 (admin/config/search/path/update_bulk) へアクセスしてください。
更新したいエンティティタイプを選択し、更新ボタンを押すだけで実行できます。
エイリアスの削除
Pathautoモジュールには一括でURLエイリアスを削除する機能も備わっています。ただし、この機能は手動で設定したURLエイリアスも削除するので、本番サイトでの使用はお薦めしません。
管理画面から 環境設定 > URLエイリアス > エイリアスの削除 (admin/config/search/path/delete_bulk) へアクセスしてください。
こちらも一括更新同様に、削除したいエンティティタイプを選択し、エイリアスの削除ボタンを押すだけです。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。