web-dev-qa-db-ja.com

メニューでURLエイリアスを使用するにはどうすればよいですか?

テストサイトを回転させて、Drupal 7でタイヤを蹴っています。

私はDanlandテーマを選択し、それぞれにURLエイリアスを含むさまざまなページを作成しましたが、それぞれにメニューリンクを作成するとき、メニューリンクの[パス]フィールドにのみノードを入力でき、エイリアスは入力できません。そのため、メニューに「node/20」のみを入力でき、「about-us」(ノードのエイリアス)は入力できません。

メニュー項目をノードではなくエイリアスに解決してほしい。
それ、どうやったら出来るの?

14
cpuguru

私のDrupalインストールからDrupal 7に新しくリリースされたDrupal 7.2にアップデートすると、問題が修正されました。 Drupal 7.2にアップデートする場合、アップデートスクリプトが機能するために、元のPDO SQL Serverドライバーの上にインストールする必要がある、リリースされたばかりのアップデートされたSQL Serverドライバー。7.2。

どちらの方法でも、メニューリンクをクリックするとエイリアスURLが表示されます。したがって、Drupal core 7.2 OR SQL Serverドライバーの更新で、コードが変更された可能性があります。どちらであるかは100%わかりません。

0
cpuguru

コメントで言及されたBerdirと 彼の答え で言及されたGregのように、パスエイリアスを追加する次のメソッドはJust Work™である必要があります。

  • ノードの作成/編集中にノード送信フォームに追加する
  • Pathauto を使用して、ノードのエイリアスを自動的に作成します。
  • ConfigurationSearch and metadataURL aliasesに移動して手動でエイリアスを追加する

それがしていないのは変だ。 ConfigurationDevelopmentPerformanceに移動して、キャッシュをクリアしてみてください。これにより、Drupalのメニューが再構築され、パスエイリアスが正しく表示されます。

7
user7

また、エイリアスが作成されたURLとは異なる言語でサイトを閲覧している可能性もあります。ドイツ語(たとえば)で閲覧中にエイリアスを作成した場合、サイトを英語モードで閲覧している訪問者には引き続きnode/234234が表示されます。ほんのヒント。

4
yareckon

パスエイリアスとメニューエントリの両方を割り当てる場合ノードの追加/編集フォームを使用の場合、作成されたメニュー項目はエイリアスパスを使用します。単純な使用例では、admin/config/search/pathページでエイリアスを手動で作成したり、admin/structure/menuページでメニューエントリを手動で作成したりする必要はありません。

0
Greg

Danlandテーマを使用して新しいd7インストールを試したところ、正しく動作しました。あなたがそれを機能させることができないなら、あなたはいつでもあなたのメニューで外部URLを指定することができますか? 「node/1」の代わりに「http://yourdomain.com/about-us」など

0
Matthew Hui

テーマテンプレートは、次の方法でURLエイリアスで上書きできます。

  1. テーマテンプレートファイルに前処理関数を追加する
  2. URLエイリアスを取得し、テンプレートファイルを選択します

コードの完全な説明は drupal管理者とURLエイリアス で作成されたページのテンプレートを作成する方法)に記載されています。

0
Shankar