Pathautoにカスタムトークンを追加しようとしています。
トークン[ストーリーページ番号]を持っています。
そして、私のhook_pathauto_alias_alter()で、token_replace()を使用してそれを置き換えようとしています。
しかし、何かがおかしい。
token_replace("[story-page-number]", (array)node_load($context['data']['node']->nid));
これがカスタムトークンの設定です。
function mymodule_token_list($type = 'all') {
$tokens['story-page-number'] = t('Page number (of story front)');
return $tokens;
}
function mymodule_token_values($type, $object = NULL, $options = array()) {
$values = array();
$values['story-page-number'] = get_story_page_number($node->nid);;
return $values;
}
ここで何が欠けているのか、もっと簡単にわかると思いました。
これを試して:
_$node = node_load($context['data']['node']->nid);
token_replace("[node:story-page-number]", array('node' => $node));
_
_$context['data']['node']
_がすでにノードである場合、node_load()
呼び出しをスキップして、単に_$node = $context['data']['node'];
_を割り当てることができます。
編集:申し訳ありませんが、コードで例を試しませんでした。トークン名にトークンタイプを含める必要があります。 mymodule_tokens()
で、_$type
_が_'node'
_であることを確認し、_$node
_から_$data['node']
_を検索します。 Drupal 6 hook_token_values()
;を使用していることに注意してください。D7hook_tokens()
を使用する必要があります。 node_tokensの実装を使用してください() をガイドとして。