回答:
それで、あなたはそれが書かれているようにリンクURLを修正する方法を探していますか?私は最近これを調べて、どれだけの狩猟が必要であるかに驚きました。
私はhook_url_outbound_alter( &$path, &$options, $original_path )
、Drupal URLシステムによって書き込まれているリンクURLを変更できるようにしました。
またhook_url_inbound_alter( &$path, $original_path, $path_language )
、パスの特定の言語が含まれているため、より適切な場合があります。変更を行う場所によって異なります。私は個人的にhook_url_outbound_alter()
信頼性が高く、操作が簡単であると思います-書き込まれるときにすべての適切なURLを変更し、$ optionsを使用して、クエリ文字列(...?query = string&foo = bar)とハッシュフラグメント(... #someId)。
$ pathを変更すると、URL hrefに書き込まれる実際のパスが更新されます。もちろん、これはすべてのリンクで実行されるため、変更するリンクであることを確認することから始めます。
エイリアスの前に実行されるため、Drupalのデフォルトに基づいています。分類パスのみを変更する場合、2つの非常に単純な例を示します。
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
if(strpos($original_path, 'taxonomy/term') === 0) {
// do stuff
}
}
または、ノード編集ページなど、特定のページでのみ実行する場合:
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
$current_path = explode("/", current_path() );
if (count($current_path) >= 3 && $current_path[0] == "node" && $current_path[2] == "edit") {
// do stuff
}
}