admin管理员组文章数量:1122832
I realize modifying the core files is frowned against but I strongly believe that the WP core SHOULD NOT rely on external links. In my situation, I'm behind the Great Chinese Firewall, the gravatar sites are blocked. This causes a lag in my page load times. I have a patch in place but I'd like to remove it from my install altogether.
I realize modifying the core files is frowned against but I strongly believe that the WP core SHOULD NOT rely on external links. In my situation, I'm behind the Great Chinese Firewall, the gravatar sites are blocked. This causes a lag in my page load times. I have a patch in place but I'd like to remove it from my install altogether.
Share Improve this question asked Nov 20, 2013 at 20:33 TwiftyTwifty 9041 gold badge9 silver badges13 bronze badges4 Answers
Reset to default -2I still think Rarst's answer is better and that there is no need to remove Gravatar links in the core WordPress files, but ...
The files you are looking for are:
/wp-admin/credits.php
/wp-admin/options-discussion.php
/wp-content/plugins/akismet/akismet.js
/wp-includes/pluggable.php
/wp-includes/post-template.php
Since you may need to do this every time WordPress updates, you could search the WordPress files for the word 'gravatar'. Most good text editors make it possible to search across all files in a directory and its sub directories. You only need to search in PHP and JavaScript files.
Here is the results I get:
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-admin\credits.php' (11/19/2013 4:11:29 AM; 11/19/2013 4:11:29 AM):
C:\WordPress\WordPress\wp-admin\credits.php(113): $gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/';
C:\WordPress\WordPress\wp-admin\credits.php(149): echo '<img src="' . $gravatar . $person_data[1] . '?s=' . $size . '" class="gravatar" alt="' . esc_attr( $person_data[0] ) . '" /></a>' . "\n\t";
Found 'gravatar' 5 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-admin\options-discussion.php' (11/19/2013 4:11:50 AM; 11/19/2013 4:11:50 AM):
C:\WordPress\WordPress\wp-admin\options-discussion.php(176): <?php // the above would be a good place to link to codex documentation on the gravatar functions, for putting it in themes. anything like that? ?>
C:\WordPress\WordPress\wp-admin\options-discussion.php(221): 'gravatar_default' => __('Gravatar Logo'),
Found 'gravatar' 3 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-content\plugins\akismet\akismet.js' (8/2/2013 9:33:47 AM; 8/2/2013 9:33:47 AM):
C:\WordPress\WordPress\wp-content\plugins\akismet\akismet.js(92): // It changes based on if there is a gravatar present
Found 'gravatar' 1 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-includes\pluggable.php' (11/19/2013 4:12:12 AM; 11/19/2013 4:12:12 AM):
C:\WordPress\WordPress\wp-includes\pluggable.php(1675): $host = 'https://secure.gravatar.com';
C:\WordPress\WordPress\wp-includes\pluggable.php(1678): $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
C:\WordPress\WordPress\wp-includes\pluggable.php(1680): $host = 'http://0.gravatar.com';
C:\WordPress\WordPress\wp-includes\pluggable.php(1684): $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('[email protected]')
C:\WordPress\WordPress\wp-includes\pluggable.php(1687): elseif ( !empty($email) && 'gravatar_default' == $default )
C:\WordPress\WordPress\wp-includes\pluggable.php(1689): elseif ( 'gravatar_default' == $default )
Found 'gravatar' 6 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-includes\post-template.php' (11/19/2013 4:12:26 AM; 11/19/2013 4:12:26 AM):
C:\WordPress\WordPress\wp-includes\post-template.php(1357): * @return string gravatar, user, i18n formatted datetimestamp or localized 'Current Revision'.
C:\WordPress\WordPress\wp-includes\post-template.php(1370): $gravatar = get_avatar( $revision->post_author, 24 );
C:\WordPress\WordPress\wp-includes\post-template.php(1379): $gravatar,
Found 'gravatar' 3 time(s).
Search complete, found 'gravatar' 18 time(s). (5 file(s)).
I searched on the trunk version of WordPress. You would need to search on a local copy of the WordPress files on your web server.
This search indicates that only the \wp-admin\credits.php
file needs to be changed. The get_avatar()
function is not used there. To make the least impact, you might just change the urls used in line 113:
$gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/';
To urls that are local:
$gravatar = is_ssl() ? 'https://example.com/avatar/' : 'http://example.com/avatar/';
You can simply disable gravatars in Settings
> Discussion
> Avatar Display
.
On technical side avatar links are produced by get_avatar()
, which passes output through filter of same name and so can be easily hooked into without any need to edit core files.
Also note that whole function itself is pluggable, meaning it can be completely overridden by being redeclared in a plugin or theme:
function get_avatar() {
return ''; // Put your return value here, such as a default image
}
By placing this function declaration in a plugin, the core get_avatar()
will not be declared, and you will have completely bypassed the external call to gravatar.com
.
I can understand that you don't want to remove support for avatars entirely. In this case, I'd recommend using a plugin such as WP User Avatar or Simple Local Avatars. Those will allow your users to upload their own avatars to your WordPress site instead of using Gravatar.
The filter to disable the call to Gravatar.com completely is:
add_filter( 'get_avatar', 'so_disable_gravatars', 10, 2 );
function so_disable_gravatars( $avatar ) {
$avatar = '';
return $avatar;
}
本文标签: Which core file is responsible for gravatars
版权声明:本文标题:Which core file is responsible for gravatars? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736291611a1928758.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论