我有一個詞彙類別和四個詞語。我想要做的是如果內容被標記爲特定的終端,例如「term1」將url生成爲word1/[node:title],並且所有其他標記只是標準的url格式。基於分類術語生成url別名
,如果我想在URL中明顯標識的使用模式替換術語,但我想如果一個特定的標籤使用
我有一個詞彙類別和四個詞語。我想要做的是如果內容被標記爲特定的終端,例如「term1」將url生成爲word1/[node:title],並且所有其他標記只是標準的url格式。基於分類術語生成url別名
,如果我想在URL中明顯標識的使用模式替換術語,但我想如果一個特定的標籤使用
發現實際上是一個簡單的方法,任何人誰需要一個類似的解決方案使用模塊實體引用。
http://drupal.org/project/entityreference
我剛剛創建了一個新的領域爲用戶帳戶選擇實體引用,那麼你可以選擇參考的Drupal內的任何實體。 (即所以你可以選擇一個術語/內容/任何東西)
我想不出一個簡單的插件和播放方式使用另一個詞實現這一點。您可能需要創建自己的令牌在Pathauto的URL別名設置中的「默認路徑模式」:
/**
* Implementation of hook_token_info().
*/
function MODULE_token_info() {
$info['tokens']['node']['node-term-path'] = array(
'name' => t('Node path by term'),
'description' => t('The path to a node based on its taxonomy terms.'),
);
return $info;
}
/**
* Implementation of hook_tokens().
*/
function MODULE_tokens($type, $tokens, array $data = array(), array $options = array()) {
$replacements = array();
if ($type == 'node' && !empty($data['node'])) {
$node = $data['node'];
foreach ($tokens as $name => $original) {
switch ($name) {
case 'node-term-path':
$items = field_get_items('node', $node, 'TAXONOMY_FIELD_NAME');
foreach ($items as $item) {
$tids[] = $item['tid'];
}
if (in_array(TID_OF_TERM1, $tids)) {
// Path for nodes with term1
$replacements[$original] = 'word1/'. pathauto_cleanstring($node->title);
}
else {
// Path for other nodes
$replacements[$original] = 'content/'. pathauto_cleanstring($node->title);
}
break;
}
}
}
return $replacements;
}