Какой основной файл отвечает за гравитары?

Я понимаю, что изменение основных файлов нахмурилось, но я твердо верю, что ядро ​​WP НЕ ДОЛЖНО полагаться на внешние ссылки. В моей ситуации я за Великим китайским брандмауэром, сайты гравитатора заблокированы. Это приводит к задержке в загрузке страницы. У меня есть патч на месте, но я хотел бы удалить его из моей установки в целом.

Solutions Collecting From Web of "Какой основной файл отвечает за гравитары?"

Я все еще думаю, что ответ Rarst лучше и что нет необходимости удалять ссылки Gravatar в основных файлах WordPress, но …

Файлы, которые вы ищете:

/wp-admin/credits.php /wp-admin/options-discussion.php /wp-content/plugins/akismet/akismet.js /wp-includes/pluggable.php /wp-includes/post-template.php 

Поскольку вам может понадобиться делать это каждый раз, когда WordPress обновляется, вы можете искать файлы WordPress для слова «gravatar». Большинство текстовых редакторов позволяют выполнять поиск по всем файлам в каталоге и его подкаталогах. Вам нужно искать только файлы PHP и JavaScript.

Вот результаты, которые я получаю:

 ---------------------------------------- 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('unknown@gravatar.com') 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)). 

Я искал версию сундука WordPress. Вам нужно будет искать локальную копию файлов WordPress на вашем веб-сервере.

Этот поиск показывает, что нужно изменить \wp-admin\credits.php файл \wp-admin\credits.php . Функция get_avatar() не используется. Чтобы иметь наименьшее влияние, вы можете просто изменить URL-адреса, используемые в строке 113:

 $gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/'; 

К URL-адресам, которые являются локальными:

 $gravatar = is_ssl() ? 'https://example.com/avatar/' : 'http://example.com/avatar/'; 

Вы можете просто отключить гравитаторы в Settings > Discussion > Avatar Display .

На технической стороне ссылки аватаров создаются get_avatar() , который передает результат через фильтр с тем же именем, и поэтому его можно легко подключить без необходимости редактировать файлы ядра.

Также обратите внимание, что вся функция сама по себе подключается , что означает, что ее можно полностью переопределить, будучи обновленным в плагине или теме:

 function get_avatar() { return ''; // Put your return value here, such as a default image } 

Поместив объявление этой функции в плагин, ядро get_avatar() не будет объявлено, и вы полностью обойдете внешний вызов gravatar.com .

Я понимаю, что вы не хотите полностью удалять поддержку аватаров. В этом случае я бы рекомендовал использовать плагин, такой как WP User Avatar или Simple Local Avatars . Это позволит вашим пользователям загружать свои собственные аватары на ваш сайт WordPress вместо использования Gravatar.

Фильтр для полного отключения вызова Gravatar.com:

 add_filter( 'get_avatar', 'so_disable_gravatars', 10, 2 ); function so_disable_gravatars( $avatar ) { $avatar = ''; return $avatar; }