2015-09-11 00:55:26 -04:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* WordPress Credits Administration API.
|
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
* @subpackage Administration
|
|
|
|
* @since 4.4.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the contributor credits.
|
|
|
|
*
|
|
|
|
* @since 3.2.0
|
|
|
|
*
|
|
|
|
* @return array|false A list of all of the contributors, or false on error.
|
2015-12-12 10:37:28 -05:00
|
|
|
*/
|
2015-09-11 00:55:26 -04:00
|
|
|
function wp_credits() {
|
2017-09-27 04:00:49 -04:00
|
|
|
// include an unmodified $wp_version
|
|
|
|
include( ABSPATH . WPINC . '/version.php' );
|
|
|
|
|
2016-10-03 03:04:29 -04:00
|
|
|
$locale = get_user_locale();
|
2015-09-11 00:55:26 -04:00
|
|
|
|
|
|
|
$results = get_site_transient( 'wordpress_credits_' . $locale );
|
|
|
|
|
|
|
|
if ( ! is_array( $results )
|
|
|
|
|| false !== strpos( $wp_version, '-' )
|
|
|
|
|| ( isset( $results['data']['version'] ) && strpos( $wp_version, $results['data']['version'] ) !== 0 )
|
|
|
|
) {
|
2017-09-27 04:00:49 -04:00
|
|
|
$url = "http://api.wordpress.org/core/credits/1.1/?version={$wp_version}&locale={$locale}";
|
|
|
|
$options = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ) );
|
|
|
|
|
|
|
|
if ( wp_http_supports( array( 'ssl' ) ) ) {
|
|
|
|
$url = set_url_scheme( $url, 'https' );
|
|
|
|
}
|
|
|
|
|
|
|
|
$response = wp_remote_get( $url, $options );
|
2015-09-11 00:55:26 -04:00
|
|
|
|
|
|
|
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) )
|
|
|
|
return false;
|
|
|
|
|
|
|
|
$results = json_decode( wp_remote_retrieve_body( $response ), true );
|
|
|
|
|
|
|
|
if ( ! is_array( $results ) )
|
|
|
|
return false;
|
|
|
|
|
|
|
|
set_site_transient( 'wordpress_credits_' . $locale, $results, DAY_IN_SECONDS );
|
|
|
|
}
|
|
|
|
|
|
|
|
return $results;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the link to a contributor's WordPress.org profile page.
|
|
|
|
*
|
|
|
|
* @access private
|
|
|
|
* @since 3.2.0
|
|
|
|
*
|
2017-10-02 18:14:46 -04:00
|
|
|
* @param string $display_name The contributor's display name (passed by reference).
|
2015-09-11 00:55:26 -04:00
|
|
|
* @param string $username The contributor's username.
|
|
|
|
* @param string $profiles URL to the contributor's WordPress.org profile page.
|
|
|
|
*/
|
|
|
|
function _wp_credits_add_profile_link( &$display_name, $username, $profiles ) {
|
|
|
|
$display_name = '<a href="' . esc_url( sprintf( $profiles, $username ) ) . '">' . esc_html( $display_name ) . '</a>';
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the link to an external library used in WordPress.
|
|
|
|
*
|
|
|
|
* @access private
|
|
|
|
* @since 3.2.0
|
|
|
|
*
|
2017-10-02 18:14:46 -04:00
|
|
|
* @param string $data External library data (passed by reference).
|
2015-09-11 00:55:26 -04:00
|
|
|
*/
|
|
|
|
function _wp_credits_build_object_link( &$data ) {
|
|
|
|
$data = '<a href="' . esc_url( $data[1] ) . '">' . esc_html( $data[0] ) . '</a>';
|
|
|
|
}
|