web-dev-qa-db-ja.com

comment.tpl.phpのカスタムユーザーフィールドを印刷する方法

ユーザー画像の代わりにカスタムユーザーフィールド(field_avatar)の画像を印刷しようとしています。どうして?ユーザー画像ファイルディレクトリはトークンを受け入れません。つまり、ディレクトリに100k個のファイルがあり、Webサイトの速度が低下するシナリオに遭遇する可能性があります。

何時間も答えをググるので、これは私が読んだ最高のソリューションです。

カスタムomega 4サブテーマに配置されたcomment.tpl.phpに、このコードを追加しました。

<?php  print render(field_view_field('user', $user, 'field_avatar'));  ?>

ただし、上記のコードはデフォルトのfield_avatar画像を印刷します!コメントIDに基づくfield_avatarではありませんか?または作者のUID?

知恵を賢く落としてください!

1
Ian

うまくいきました!私はuser_load($ comment-> uid)を使用して作成者の関係をロードしました。

コードをサブテーマのcomment.tpl.phpのコピーに配置しました。

<?php print render(field_view_field('user',user_load($comment->uid), 'YOUR-CUSTOM-USER-FIELD'));?>

乾杯と幸運を!

2
Ian

現在ログインしている$ userではなく、コメントの$ authorを参照する必要があります。幸い、$ authorはtplファイルのパラメーターとして渡されます。これを試してみてください。

<?php
  print render(field_view_field('user', $author, 'field_avatar'));
?>
0
Darvanen