Skip to content

Instantly share code, notes, and snippets.

View justinph's full-sized avatar

Justin Heideman justinph

View GitHub Profile
@justinph
justinph / validate_gravatar.php
Created March 19, 2013 16:49
In wordpress, a better way to check if an author has a gravatar or not. Sometimes you might want to check to see if a gravatar exists and not display any image if there isn't one. Uses the wordpress HTTP and caching apis. A better version of this: http://codex.wordpress.org/Using_Gravatars#Checking_for_the_Existence_of_a_Gravatar
/**
* Utility function to check if a gravatar exists for a given email or id
* @param int|string|object $id_or_email A user ID, email address, or comment object
* @return bool if the gravatar exists or not
*/
function validate_gravatar($id_or_email) {
//id or email code borrowed from wp-includes/pluggable.php
$email = '';
@justinph
justinph / gist:5255773
Last active June 29, 2019 20:25
How to find your CDN url in WordPress on WPEngine.
if (class_exists('WpeCommon')){
$wpe_common = new WpeCommon();
$cdn_url = $wpe_common->get_cdn_domain($wpe_netdna_domains,get_bloginfo( 'url' ) );
}
var_dump($cdn_url);
@justinph
justinph / responsive-embeds.php
Last active December 18, 2015 22:08
Theme-based embed.ly oEmbed support for Wordpress multisite installations.
// We use embed.ly to help with oembeds that aren't very clean
// Define our API KEY
define('EMBEDLY_KEY','YOUR_KEY_HERE');
// remove default polldaddy provider because its broken
// this can be removed when WP removes support for polldaddy
// see http://core.trac.wordpress.org/ticket/24395
wp_oembed_remove_provider( '#https?://(.+\.)?polldaddy\.com/.*#i' );
@justinph
justinph / embedly_patterns.def
Created June 24, 2013 17:30
Embed.ly patterns for wordpress.
#http://.*twitch\.tv/.*#i
#http://.*justin\.tv/.*/b/.*#i
#http://.*justin\.tv/.*/w/.*#i
#http://.*twitch\.tv/.*#i
#http://.*twitch\.tv/.*/b/.*#i
#http://www\.ustream\.tv/recorded/.*#i
#http://www\.ustream\.tv/channel/.*#i
#http://www\.ustream\.tv/.*#i
#http://ustre\.am/.*#i
#http://qik\.com/video/.*#i
@justinph
justinph / fusiontables_google_map.php
Created June 24, 2013 17:36
Adds a fake/faux oEmbed provider for google fusion tables.
<?php
/* Faux Google Maps Fusiontables oEmbed
* Embed google maps in a nicer iframe without using their provided embed code
* @usage Paste a Google Maps link in your post and it will be replaced with an iframe when published
*/
/*
* Example embed URL:
* https://www.google.com/fusiontables/embedviz?viz=MAP&q=select+col6+from+1is6E5G4IwxTxG43X8F-v1N_OOSy_lJo_JhrI01U&h=false&lat=45.302540427209586&lng=-93.85018772275396&z=7&t=1&l=col6&y=6&tmplt=8
*/
@justinph
justinph / documentcloud.php
Created June 24, 2013 17:37
Add a fake/faux oEmbed provider for DocumentCloud. Also adds a shortcode.
<?php
/* Faux DocumentCloud oEmbed
* Embed documentcloud inline without using their provided embed code because it sucks
* @usage Paste a Documentcloud link in your post and it will be replaced with an the proper code when published
*/
/*
* Example embed URL:
* http://www.documentcloud.org/documents/693854-macalester-collge-letter-to-students-about-wells.html
*/
@justinph
justinph / ie8_compat.less
Created October 31, 2013 19:16
MPR News base.less
// for IE8, we bring in these
@import "medium";
@import "large";
body{
min-width: 980px;
}
@justinph
justinph / router.js
Last active July 13, 2016 05:53
Dynamically loads css and js assets on MPRnews.org
define(["jquery"], function router() {
"use strict";
return {
basePath: '',
init: function() {
var self = this;
//Javascript loading needs to happen on initial load and on successful pjax completion
this.loadJS();
$(document).on("pjax:complete", function() {
self.loadJS();
requirejs: {
compile: {
options: {
baseUrl: "public_html/js",
dir: "public_html/js-built",
mainConfigFile: "public_html/js/init.js",
optimize: "uglify2",
skipDirOptimize: true,
preserveLicenseComments: false,
separateCSS: true,
@justinph
justinph / .htaccess
Created January 22, 2014 19:36
mprnews mod_rewrite example
RewriteEngine On
# Allows our static assets to be versioned
# javascript (js) is versioned seperately because it has a more complicated build process
# also create a shortcut path /a/ for static assets because it uses less characters
RewriteRule ^js-built/([0-9]+)/(.*)$ /js-built/$2 [L]
RewriteRule ^a/([0-9]+)/(.*)$ /assets/$2 [L]
RewriteRule ^assets/([0-9]+)/(.*)$ /assets/$2 [L]