web-dev-qa-db-ja.com

パスの自動使用親タグ、存在しない場合は現在のタグを使用

OK。 PathautoとTokenを持っています

次のタグ構造があります。

ドリンク>ビール

パス自動を使用して、DrinksまたはBeerでタグ付けされたすべてのノードのURLを/ Drinks/[Node:title]にする

したがって、基本的には[node:field-tags:0:parent]/[Node:title]を使用して、ビールとしてタグ付けされたすべてのノードで正しく機能するようにすることができます。

ただし、ノードがドリンクとしてタグ付けされている場合、親は存在せず、ノードのタイトルを返すだけです。したがって、その場合は[node:field-tags:0:name]/[Node:title]を使用します

だから私が探しているのはこのようなものです(存在する場合):

[node:field-tags:0:parent ELSE node:field-tags:0:name]/[Node:title]

カスタムトークンを調べましたが、理解できません。これを行う簡単な方法があることを願っていました。

2
Curtis

わかりました。カスタムトークンモジュールを使用します。オンにするPHP Filter in Core Drupal Modules in new Custom Token in structure in Nodeds Choose the Token Type then then use this code:

<?php
if (isset($data['node'])) {
    $parent = token_replace('[node:field-tags:0:parent]', $data);
    return ($parent != '[node:field-tags:0:parent]') ? token_replace('[node:field-tags:0:parent]', $data) : token_replace('[node:field-tags:0:name]', $data);
}
?>

リストの最初のタグの親タグを返し、存在しない場合はリストの最初のタグを返します

1
Curtis