0

このコードは、特定のカテゴリの最新の投稿を表示します。投稿には抜粋のみが表示され、ユーザーのアバターが表示されます。

注:と呼ばれるプラグインを使用していますlocal avatar

    //display newest post// 
    <?php
       global $post;
       $args = array( 'numberposts' => 1, 'category' => 1 );
       $myposts = get_posts( $args );
       foreach( $myposts as $post ):setup_postdata($post); ?>

       //gets user avatar and excerpt//
       <?php echo get_avatar( get_the_author_meta( 'user_email' )); ?>
       <a href="<?php the_permalink(); ?>"><?php echo get_excerpt(100); ?>... </a>

     <?php endforeach; ?>

ワードプレスによると、ユーザーのアバターを表示したい場合は、ループ内に次を含める必要があります<?php echo get_avatar( $id_or_email, $size = '50'); ?> 。このコードは、デフォルトのアバターのみを表示します。

これは、 <?php echo get_avatar( get_the_author_meta( 'user_email' )); ?>ローカルにアップロードされたアバターとグラバターの両方の作品のデフォルトのワードプレステンプレートから取得されました。

wordpress codexにあるものではなく、後者が機能する理由を明確にしたいだけです。

4

1 に答える 1

0

どちらもまったく同じ機能ですが、 1 つはWordPress のドキュメントからのガイドラインであり、もう 1 つは実際に使用されています。

説明させてください:

$id_or_email関数が取るパラメータの種類を$size = '50'示すプレースホルダです。デフォルトでは、Wordpress で宣言された変数ではないget_avatar()ため、値はです。だからあなたが本当に書いているのは:$id_or_emailundefined

get_avatar(undefined, 50)

get_avatar()アバターを返すための最初のパラメーターとして、ユーザーの ID または電子メール アドレスのいずれかが必要です。あなたがそれを提供するので、これらのWordpressのどちらもデフォルトのアバターにフォールバックしません.

はメール アドレスを返すためget_the_author_meta( 'user_email' )、 の必須パラメータを正常に満たしていますget_avatar()。2 番目のパラメータ$sizeはオプションで、デフォルトは 96 です。

その他の使用法については、 http://codex.wordpress.org/Function_Reference/get_avatar#Examplesを参照してください。

于 2012-12-18T09:37:28.920 に答える