Skip to content

Instantly share code, notes, and snippets.

View jplhomer's full-sized avatar

Josh Larson jplhomer

View GitHub Profile
// Directive: x-clipboard
Alpine.directive('clipboard', async (el, { expression }) => {
el.addEventListener('click', async () => {
await navigator.clipboard.writeText(expression);
document.dispatchEvent(
new CustomEvent('banner-message', { detail: { style: 'success', message: 'Copied to clipboard!' } })
);
});
});
@jplhomer
jplhomer / functions.php
Created March 19, 2017 21:19
Set a custom taxonomy for Taghound Media Tagger
<?php
// Your theme's functions.php file...
function custom_tag_taxonomy( $slug ) {
return 'YOUR_CUSTOM_SLUG';
}
add_filter( 'tmt_tag_taxonomy', 'custom_tag_taxonomy', 10, 1 );
@jplhomer
jplhomer / app.scss
Last active February 13, 2017 17:31
Using Laravel Mix for a standalone project
$favorite-color: green;
$pad: 1em;
#app {
background-color: $favorite-color;
h1 {
font-size: $pad * 5;
}
}
@jplhomer
jplhomer / taghound-frontend.php
Created February 13, 2017 14:31
Show Taghound Tags on the front-end of a WordPress post.
<?php
// single.php or whatever template you'd like
// 1. Get the ID of the current thumbnail for the post
$attachment_id = get_post_thumbnail_id();
// 2. Get the tags associated to the image
$tags = wp_get_post_terms($attachment_id, 'tmt_tag');

Keybase proof

I hereby claim:

  • I am jplhomer on github.
  • I am jplhomer (https://keybase.io/jplhomer) on keybase.
  • I have a public key ASC2sjVUdy9XeT2gcSjdtIkjHwyAYYqKI7YTfCDALshl7Ao

To claim this, I am signing this object:

@jplhomer
jplhomer / basic.html
Last active December 20, 2017 18:09
Example of loading fonts with loadCSS
<!-- Our font file is fonts.css -->
<script>
/*!
loadCSS: load a CSS file asynchronously.
[c]2014 @scottjehl, Filament Group, Inc.
Licensed MIT
*/
/* exported loadCSS */
@jplhomer
jplhomer / disable-comments.sh
Created February 25, 2015 16:38
Disable all comments/pings in WordPress with WP-CLI
$ wp post list --format=ids | xargs wp post update --comment_status=closed
# Output:
# Success: Updated post 2514.
# Success: Updated post 2511.
# Success: Updated post 2504.
# Success: Updated post 2499.
# Success: Updated post 2441.
# etc...
@jplhomer
jplhomer / 0_reuse_code.js
Last active August 29, 2015 14:13
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@jplhomer
jplhomer / routes.js
Created May 22, 2014 13:28
How do I use promises in NodeJS?
/*
* This is a NodeJS app using the official MailChimp API wrapper.
* I want to grab this data and display it in a custom view, but without a giant callback-y mess. Ideas?
*/
exports.view = function(req, res){
mc.campaigns.list({campaign_id: req.params.id}, function(campaignData) {
var campaign = campaignData.data[0];
mc.reports.summary({cid:req.params.id}, function(reportData) {
mc.lists.list({ list_id: campaignData.list_id }, function(listData) {
@jplhomer
jplhomer / page-about.php
Created October 25, 2013 03:46
The template to show our custom timeline using Wordpress and Advanced Custom Fields: http://jplhomer.org/2013/10/building-responsive-timeline-advanced-custom-fields/
<?php if ( $events = get_field( 'events' ) ) :
// Re-order our events just in case
if ( get_field('sort_order') == 'Date Descending') {
usort( $events, 'sort_by_date_descending');
} else {
usort( $events, 'sort_by_date_ascending');
}
// Set a year checker to see if we should print a new year
$year = 0;