Created
December 2, 2021 21:20
-
-
Save alexmustin/5addc3e2878fed26b90bbafcbc11e94e to your computer and use it in GitHub Desktop.
A shortcode to display the latest release number for a provided GitHub repository
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Displays the latest release number from a provided GitHub repository. | |
* | |
* Example usage: [show_repo_version_number repo="alexmustin/woo-custom-emails-per-product"] | |
* | |
* @param array $atts An array of shortcode attributes. | |
* @return string $output A string of text including the release number. | |
*/ | |
function show_repo_version_number_function( $atts ) { | |
// Init vars. | |
$custom_atts = | |
$repo_url = | |
$data = | |
$output = ''; | |
// Setup default atts. | |
$custom_atts = shortcode_atts( | |
array( | |
'repo' => '', | |
), | |
$atts, | |
'show_repo_version_number' | |
); | |
// If repo URL from shortcode atts is empty, exit. | |
if ( empty( $custom_atts['repo'] ) ) { | |
return; | |
} | |
// Assign the repo URL from the shortcode atts. | |
$repo_url = $custom_atts['repo']; | |
// Get the API data from the GitHub repo. | |
$data = @json_decode( | |
@file_get_contents( "https://api.github.com/repos/$repo_url/releases/latest", | |
false, | |
stream_context_create( ['http' => ['header' => "User-Agent: Vestibulum\r\n"]] ) | |
) | |
); | |
// Get the version number from the returned data. | |
$version_num = $data->tag_name; | |
// Begin content output. | |
ob_start(); | |
// Show the repo version number. | |
echo '<b>Version:</b> ' . $version_num; | |
// Put all content into a var. | |
$output = ob_get_contents(); | |
// Clear the memory. | |
ob_end_clean(); | |
// Output everything. | |
return $output; | |
} | |
add_shortcode( 'show_repo_version_number', 'show_repo_version_number_function' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment