Skip to content

Instantly share code, notes, and snippets.

@joemcgill
joemcgill / plugin.php
Created Jul 20, 2020
Fix Instagram embeds with Jetpack shortcodes module
View plugin.php
<?php
// Disable Jetpack's instagram shortcode since it breaks oEmbed functionality.
add_filter( 'jetpack_shortcodes_to_include', function ( $shortcodes ) {
unset( $shortcodes['instagram'] );
return $shortcodes;
}, 99 );
// Add a simple shortcode wrapper for the embed functionality to support the shortcode format.
View force-gutenberg-fullscreen.md

Force Gutenberg to Fullscreen Mode

This is an example snippet for forcing the Gutenberg editor into full screen mode in anticipation of the change coming to WordPress 5.4.

@joemcgill
joemcgill / Remove Class Filters Example
Last active Mar 4, 2020
Remove filters added from class instances on a specific hook.
View Remove Class Filters Example
class Test_Class {
public function __construct() {
add_filter( 'pre_get_posts', [$this, 'test_callback'] );
}
public function test_callback() {
wp_die( 'Hooked up.' );
}
}
@joemcgill
joemcgill / axe-report.js
Created Dec 11, 2018
A11y test example for axe-puppeteer.
View axe-report.js
const colors = require('colors');
const link = colors.underline.blue;
const error = colors.red.bold;
function selectorToString(selectors, separator) {
separator = separator || ' '
return selectors
.reduce((prev, curr) => prev.concat(curr), [])
.join(separator)
}
@joemcgill
joemcgill / attachment_fields_to_edit_demo.php
Last active Nov 9, 2018
Attachment Fields to Edit Demo
View attachment_fields_to_edit_demo.php
<?php
add_filter( 'attachment_fields_to_edit', 'attachment_location_field', 10, 2 );
add_filter( 'attachment_fields_to_save', 'save_location_field', null, 2 );
function attachment_location_field( $form_fields, $post ) {
$field_value = get_post_meta( $post->ID, 'location', true );
$form_fields['location'] = array(
@joemcgill
joemcgill / WP_Image.md
Last active Jan 29, 2016
Ideas for a WP_Image Class in WordPress
View WP_Image.md

Goals

  • Mimic the properties of WP_Post, and include additional metadata that's stored for images
    • _wp_attached_file
    • _wp_attachement_metadata
    • _wp_attachment_is_custom_background (maybe?)
  • Include methods for retrieving data associated with an image, possibly replacing the wp_get_attachment_image_ family of functions.
  • Save any reused data that would be used across functions so it's not calculated multiple times (e.g., wp_upload_dir(), see: #34359).
  • Maintain backwards compatability with the media.php image functions.
@joemcgill
joemcgill / 20150108-wustl-load-tests.md
Created Jan 9, 2016
WUSTL Server Load Testing 1/8/2015
View 20150108-wustl-load-tests.md

1st Test – 40 users/1-4 sec/5min

40 concurrent users requesting every 1-4 seconds for 5 minutes avg was 1438 requests in 5 min (28,760/hr or 287.6/min or 4.8/sec)

  • First load is really slow ~7–9s
  • Once cache is warm things are really fast 11ms
  • Cache breaks are happening on every publish.
  • PHP seems to be the bottleneck
View gist:e245a8bf39d05b9589ca
Mary:
* Recurrence is kind of wierd/confusing. Some tutorials might be nice.
* We need to double check venues and some other
Migration:
* Everyone is going through stories.
* Slideshows are cumbersome and requires a bunch of extra work.
* Do we need to add promos to old med school stories
@joemcgill
joemcgill / new-staff-setup.md
Last active Feb 4, 2016
New Developer Setup
View new-staff-setup.md

Computer/Tooling

Much of the software that we use will be installed by Jeff/Galen on your new computer. This includes MS Office, Adobe Creative Suite, Etc. This is a list of things you will need to install yourself.

@joemcgill
joemcgill / wp_css_tricks_images_responsive.php
Created Dec 28, 2015
CSS Tricks Responsive Image Filter
View wp_css_tricks_images_responsive.php
function wp_css_tricks_images_responsive( $content ) {
/**
* Find all instanced of your custom image markup in the content and bail early
* if none are found.
*/
if ( ! preg_match_all( '/<figure [^>]+>\s+<img [^>]+>/', $content, $matches ) ) {
return $content;
}
// Set up arrays to hold your images and a set of IDs that we'll cache later.