Created
February 5, 2016 17:35
-
-
Save aaronjorbin/01a0fd464965f152f0c6 to your computer and use it in GitHub Desktop.
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 | |
/** | |
* @package Hello_Dolly | |
* @version 1.6 | |
*/ | |
/* | |
Plugin Name: Hello Dolly | |
Plugin URI: http://wordpress.org/plugins/hello-dolly/ | |
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page. | |
Author: Matt Mullenweg | |
Version: 1.6 | |
Author URI: http://ma.tt/ | |
*/ | |
function hello_dolly_get_lyric() { | |
/** These are the lyrics to Hello Dolly */ | |
$lyrics = "Hello, Dolly | |
Well, hello, Dolly | |
It's so nice to have you back where you belong | |
You're lookin' swell, Dolly | |
I can tell, Dolly | |
You're still glowin', you're still crowin' | |
You're still goin' strong | |
We feel the room swayin' | |
While the band's playin' | |
One of your old favourite songs from way back when | |
So, take her wrap, fellas | |
Find her an empty lap, fellas | |
Dolly'll never go away again | |
Hello, Dolly | |
Well, hello, Dolly | |
It's so nice to have you back where you belong | |
You're lookin' swell, Dolly | |
I can tell, Dolly | |
You're still glowin', you're still crowin' | |
You're still goin' strong | |
We feel the room swayin' | |
While the band's playin' | |
One of your old favourite songs from way back when | |
Golly, gee, fellas | |
Find her a vacant knee, fellas | |
Dolly'll never go away | |
Dolly'll never go away | |
Dolly'll never go away again"; | |
// Here we split it into lines | |
$lyrics = explode( "\n", $lyrics ); | |
// And then randomly choose a line | |
return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] ); | |
} | |
// This just echoes the chosen line, we'll position it later | |
function hello_dolly() { | |
$chosen = hello_dolly_get_lyric(); | |
echo "<p id='dolly'>$chosen</p>"; | |
} | |
// Now we set that function up to execute when the admin_notices action is called | |
add_action( 'admin_notices', 'hello_dolly' ); | |
// We need some CSS to position the paragraph | |
function dolly_css() { | |
// This makes sure that the positioning is also good for right-to-left languages | |
$x = is_rtl() ? 'left' : 'right'; | |
echo " | |
<style type='text/css'> | |
#dolly { | |
float: $x; | |
padding-$x: 15px; | |
padding-top: 5px; | |
margin: 0; | |
font-size: 11px; | |
} | |
</style> | |
"; | |
} | |
add_action( 'admin_head', 'dolly_css' ); | |
// register endpoint | |
function dolly_rest_endpoint() { | |
register_rest_route( 'hellodolly/v1', '/lyric', array( | |
'methods' => 'GET', | |
'callback' => 'hello_dolly_get_lyric', | |
)); | |
} | |
add_action( 'rest_api_init', 'dolly_rest_endpoint' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment