Skip to content

Instantly share code, notes, and snippets.

joemcgill / .htaccess
Created Jul 24, 2014
Wordpress Dev Uploads Directory Trick
View .htaccess
# Attempt to load files from production if they're not in our local version
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# Replace with your production site's domain name
RewriteRule (.*)$1
View gist:ec7f018875ceb0cbff3e
* Add custom user fields/meta info
add_action( 'show_user_profile', 'wu_custom_user_meta', 9 );
add_action( 'edit_user_profile', 'wu_custom_user_meta', 9 );
function wu_custom_user_meta( $user ) {
// create nonce field
View .gitignore
# This is a template .gitignore file for git-managed WordPress projects.
# Fact: you don't want WordPress core files, or your server-specific
# configuration files etc., in your project's repository. You just don't.
# Solution: stick this file up your repository root (which it assumes is
# also the WordPress root directory) and add exceptions for any plugins,
# themes, and other directories that should be under version control.
# See the comments below for more info on how to add exceptions for your
joemcgill / gist:9236cb10f271035414e6
Last active Aug 29, 2015
Grunt watch task example for Pattern Lab
View gist:9236cb10f271035414e6
watch: {
options: {
livereload: {
options: {livereload: '<%= connect.options.livereload %>'},
files: [
html: {
joemcgill / grunt-watch-livereload.js
Last active Aug 29, 2015
This is an example of setting up a grunt watch task to use grunt-contrib-connect and livereload.
View grunt-watch-livereload.js
// The rest of the grunt file goes here
watch: {
// The rest of your watch tasks go here
livereload: {
options: {
livereload: '<%= connect.options.livereload %>'
files: [
joemcgill / wp_pinterest_hovers.js
Created Jan 2, 2014
Automatically add Pinterest pin overlays to Wordpress blog images. This should eventually be turned into a plugin probably.
View wp_pinterest_hovers.js
* Pinterest Overlay Code
* @require jQuery 1.8
var bs_pinButtonURL = "//";
var bs_pinButtonHeight = 72;
var bs_pinButtonWidth = 72;
var bs_yourUrl = $(location).attr('host');
var bs_pinButtonPos = "bottomright";
joemcgill / better_wp_images.php
Last active Oct 14, 2016
A set of function to improve the markup of images inserted into the editor in Wordpress.
View better_wp_images.php
function show_img_vars($html, $id, $caption, $title, $align, $url, $size, $alt) {
// remove alignment class from the image
$html = preg_replace( '/ class=".*"/', '', $html );
// return the normal html output you would expect
$figure = "<figure class='image-inline";
if ($align == 'left' | 'right') {
$figure .= " align".$align;
joemcgill / show_img_vars.php
Last active Oct 14, 2016
A poor man's var_dump for the image_send_to_editor() filter in Wordpress. Throw this in your functions.php file and add an image to your post to see what get's passed. Filter it however you want to return the image however you want.
View show_img_vars.php
function show_img_vars($html, $id, $caption, $title, $align, $url, $size, $alt) {
// round up all the variables that get passed so we can test them
$vars = "html = $html\n";
$vars .= "id = $id\n";
$vars .= "caption = $caption\n";
$vars .= "title = $title\n"; // this will end up blank no matter what
$vars .= "align = $align\n";
$vars .= "url = $url\n";
joemcgill / .bash_prompt
Created Dec 13, 2013
Custom bash prompt, inspired by Paul Irish's dotfiles repo.
View .bash_prompt
# @gf3’s Sexy Bash Prompt, inspired by “Extravagant Zsh Prompt”
# Shamelessly copied from
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
export TERM=gnome-256color
elif infocmp xterm-256color >/dev/null 2>&1; then
export TERM=xterm-256color
joemcgill / form_validation_browser_plug
Created Nov 27, 2013
When using HTML5 forms elements and validation, interrupt a browser's default invalidation message and plug in your own validation code (e.g., append an invalid class to the input and style accordingly).
View form_validation_browser_plug
document.addEventListener('invalid', (function(){
return function(e){
//prevent the browser from showing default error bubble/ hint
// optionally fire off some custom validation handler
})(), true);