web-dev-qa-db-ja.com

the_author_metaが機能しない

The_author_metaを使用して、ユーザーが自分のプロファイルに設定できるリンクをいくつか取得しようとしています。

追加のプロフィールフィールドを設定して、データベースに保存しています。

私のauthor.phpに私は次のコードがあります。

<div class="user_social_icons"><a href="<?php the_author_meta('facebook'); ?>" class="facebook" title="Facebook"></a></div>

どういうわけかこれは機能していないようです。

それがなぜそうなるのか、という考えはありますか。

乾杯

2
Ged

author.phpテンプレートのpostループの外側からthe_author_meta()を呼び出すことは完全に可能です。この場合、上記は機能しません。

代わりに、使用できます

  • get_the_author_meta('facebook')または...
  • get_the_author_meta('facebook', $user_id)ここで、$user_idは、現在のユーザー/作成者のID#です。

ユーザーIDを取得するには、これを行うことができます。

<div class="user_social_icons">
    <a href="<?php $id = get_current_user_id(); get_the_author_meta('facebook`, $id); ?>" 
    class="facebook" title="Facebook"> ??NO TEXT TO CLICK??  </a>
</div>


変数$id = get_current_user_id();を割り当て、get_the_author_meta関数にそれを渡すことに注意してください。

??NO TEXT TO CLICK??はエラーではありません-アンカータグの間にクリックするテキストがないため、文字列がないため、何も表示されません。

ノート:

  • the_author_meta($field, $userID)-ループの内側と外側で機能し、値をエコーし​​ます。
  • get_the_author_meta($field, $userID)-ループ内外で動作し、値を返します。

**ループ内では、投稿者のメタデータが必要な場合は$ userIDを指定する必要はありません。そうでない場合は、ループでIDパラメーターを使用して、渡したIDの特定のユーザーメタを取得できます。

現在の投稿者ではない別のユーザーのデータを取得する場合を除き、user_idパラメーターを指定することは必ずしも必要ではありませんが、その値を渡すことで追加の手段として問題の解決に役立つ場合があります。どちらの関数も、user_idパラメーターを受け入れます。

要約すると、

  • 関数の呼び出し元のコンテキストを確認します。それはループ内またはループ外? author.phpテンプレート内のどこから呼び出しているかに依存します、上記の適切な機能を選択します。二重に確認したい場合は、オプションでユーザーIDを渡します。

  • リンクを挿入するか、link/divにwidth/height/backgroundをスタイリングしない限り、テキスト<a href"#">between</a> you hrefアンカーがないという事実が実際に問題を引き起こしているかどうかを確認してください。 おそらく犯人そして、何も表示されない理由。

5
Adam