web-dev-qa-db-ja.com

カスタムGravatarが機能しない

カスタムGravatarをWordpressにアップロードしようとしていますが、画像リンクが壊れているため、修正方法がわかりません。

add_filter( 'avatar_defaults', 'new_default_avatar' );

function new_default_avatar ( $avatar_defaults ) {
    //Set the URL where the image file for your avatar is located
    $new_avatar_url = get_bloginfo( 'template_directory' ) . '/img/icons/avatar.jpg';
    //Set the text that will appear to the right of your avatar in Settings>>Discussion
    $avatar_defaults[$new_avatar_url] = 'New Default Gravatar';
    return $avatar_defaults;
}

Gravatarを追加するオプションが付いたラジオボタンが表示されるので、コードは機能します。壊れている唯一のものは実際の画像です。

画像を右クリックすると、このURLが表示されます。

http://i2.wp.com/localhost/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

私はi2.wp.comがどこから来ているのか、あるいはそれが何をしているのかわからない。それを取り除いてすると

loalhost:888/wordpress/wp-content /テーマ/ blog-theme/img/icons/avatar.jpg

Gravatarの画像を見ることができます。

これをグーグルすると、JetpackとPhotonのプラグインが原因でこの問題を抱えている人がたくさんいましたが、プラグインはインストールされていません。

4
Anindya Basu

問題は単にあなたのデフォルトアバターが 一般公開されている ではないことだと私は思います。

例えば試してみる

http://upload.wikimedia.org/wikipedia/en/b/b0/Avatar-Teaser-Poster.jpg

の代わりに

http://loalhost:888/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

デフォルトのグラバターはhttp{|s}://i{0,1,2}.wp.com/...で提供されていることに注意してください。

ドキュメントから

デフォルトの画像を含めると、リクエストされたメールハッシュに関連付けられている画像がない場合、Gravatarは自動的にその画像を配信します。デフォルトの画像URLには、満たすべき条件がいくつかあります。

  • 公的に利用可能でなければならない(例えば、イントラネット上、ローカル開発マシン上、HTTP認証または他の何らかのファイアウォールの背後などにはあり得ない)。デフォルトの画像は、悪意のあるコンテンツを回避するためにセキュリティスキャンを通過します。
  • それぞれ80と443の標準ポートでHTTPまたはHTTPS経由でアクセス可能でなければなりません。
  • 認識可能な画像拡張子(jpg、jpeg、gif、png)が必要です
  • クエリ文字列を含めてはいけません(含まれている場合、無視されます)。
7
birgire

これはJetPackプラグインで有効にしたPhotonアドオンのためです。そのため、画像のURLは次のようになります。

> http://i0.wp.com/image-url
> http://i1.wp.com/image-url
> http://i2.wp.com/image-url

あなたはこれら3つのURLのどれでも手に入れるでしょう。 WordPressの無料CDNサービスです。これは素晴らしいです。

問題は、あなたがlocalhostでそれを試しているということです。 WordPressのCDNや他のCDNはlocalhostから画像を取得できないためです。あなたはオンラインサーバーでそれを試すべきです。単にphotonを無効にすれば、すべてうまくいくでしょう:)

アドバイスの言葉、localhostでCDNサービスをオンにしないでください。あなたはエラーになるでしょう。

編集: デフォルトでは、次のようになります。

http://0.gravatar.com/avatar/...

しかしあなたの場合はhttp://i2.wp.com/を使用していますが、これはプラグインが原因であるか、またはfunctions.phpにコードを追加した必要があります。

http://i2.wp.com/からすべての画像を返すためにfunctions.phpにコードを追加しましたか?これも事実です。

0
Robert hue