Drupalで表示しているページのパスをスラッシュで分割し、各パートを配列で取得するスクリプトのメモです。

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function THEMENAME_preprocess_page(&$variables) {
	$alias = drupal_get_path_alias($_GET['q']);
	if (strpos($alias, '/') !== false) {
		foreach (explode('/', $alias) as $part) {
			$variables['parts'][] = $part;
		}
	} else {
		$variables['parts'][] = $alias;
	}
}
?>

テーマの中の「template.php」にページのプリプロセスとして以下のように記述すると、ページのテンプレート(page.tpl.php)内で「$parts」という変数名で利用できます。

1
2
3
4
5
6
7
8
9
print_r($parts);
 
/*
Array
(
    [0] => article
    [1] => 1
)
*/

URLエイリアスごとに表示方法をカスタマイズしたい場合に有効です。