【发布时间】:2011-07-03 02:41:07
【问题描述】:
如果我有一个 url 别名为“/api/user/create”的页面,如何根据 url 命名模板文件,例如“page-api-user-create.tpl.php”。
【问题讨论】:
如果我有一个 url 别名为“/api/user/create”的页面,如何根据 url 命名模板文件,例如“page-api-user-create.tpl.php”。
【问题讨论】:
【讨论】:
您可以设置页面级模板文件来反映 url,正如 Maciej Zgazdaj 所解释的那样。
要对节点级模板文件执行相同操作,您必须将其添加到您的 template.php 文件中:
function YOURTHEME_preprocess_node(&$variables) {
$url = str_replace("-", "", $variables['node_url']);
$urlParts = explode("/", $url);
unset($urlParts[0]);
if($urlParts[1] !== false) {
$out = array();
$sug = "node";
foreach($urlParts as $val) {
$sug .= "__".$val;
$out[] = $sug;
}
$variables['theme_hook_suggestions'] =
array_merge($variables['theme_hook_suggestions'], $out);
}
}
将 YOURTHEME 替换为 .. 以及您的主题。使用 devel_themer 检查提供的建议。
【讨论】: