Skip to content

Instantly share code, notes, and snippets.

View jimboobrien's full-sized avatar

Jimobrien jimboobrien

View GitHub Profile
@jimboobrien
jimboobrien / validate.php
Created September 20, 2017 23:19 — forked from wpscholar/validate.php
Validate a value by running it through one or more callbacks.
<?php
/**
* Validate a value by running it through one or more callbacks.
*
* @param mixed $value
* @param callable $validation
* @return bool
*/
function validate( $value, $validation ) {
@jimboobrien
jimboobrien / index-by.php
Created September 20, 2017 23:19 — forked from wpscholar/index-by.php
Index a collection of arrays/objects by a specific key/property.
<?php
/**
* Index a collection of arrays/objects by a specific key/property.
*
* @param string $index
* @param array $data
* @return array
*/
function index_by( $index, array $data ) {
@jimboobrien
jimboobrien / array-find.php
Created September 20, 2017 23:19 — forked from wpscholar/array-find.php
Case insensitive array_search() with partial matches
<?php
/**
* Case insensitive array_search() with partial matches.
*
* @param string $needle
* @param array $haystack
* @return bool|int|string
*/
public static function array_find( $needle, array $haystack ) {
@jimboobrien
jimboobrien / array-order-by-keys.php
Created September 20, 2017 23:19 — forked from wpscholar/array-order-by-keys.php
Order an array based an ordered set of keys. NOTE: Values that don't have a corresponding key in the array of keys will be dropped.
<?php
/**
* Order an array based an ordered set of keys.
* NOTE: Values that don't have a corresponding key in the array of keys will be dropped.
*
* @param array $array
* @param array $keys
* @return array
*/
public static function array_order_by_keys( array $array, array $keys ) {
@jimboobrien
jimboobrien / excerpt.php
Created September 20, 2017 23:19 — forked from wpscholar/excerpt.php
Generate an excerpt from provided content. Strips HTML, removes trailing punctuation and adds a 'more' string when text has been removed.
<?php
/**
* Get an excerpt
*
* @param string $content The content to be transformed
* @param int $length The number of words
* @param string $more The text to be displayed at the end, if shortened
* @return string
*/
@jimboobrien
jimboobrien / local-time.php
Created September 20, 2017 23:26 — forked from wpscholar/local-time.php
Properly fetch the local date / time in WordPress based on a Unix timestamp.
<?php
/**
* Fetch the local date/time in WordPress based on a Unix timestamp.
*
* @param int $timestamp
* @param string $format
* @return string
*/
function get_wp_local_date_time( $timestamp, $format = '' ) {
@jimboobrien
jimboobrien / jquery.toggleElement.js
Created September 20, 2017 23:27 — forked from wpscholar/jquery.toggleElement.js
A jQuery plugin that will toggle the display of an element when another element is clicked. When the toggled element is being displayed, clicking on the initiating element or any other element that is not the toggled element or its children will cause the toggled element to be hidden. Works on touchscreens.
(function( $ ) {
/**
* A jQuery plugin that will toggle the display of an element when another element is clicked.
* When the toggled element is being displayed, clicking on the initiating element or any other element that
* is not the toggled element or its children will cause the toggled element to be hidden.
*
* @param $el
* @returns {*}
*/
@jimboobrien
jimboobrien / jquery.positionRelativeTo.js
Created September 20, 2017 23:27 — forked from wpscholar/jquery.positionRelativeTo.js
A jQuery plugin that will position an element relative to another element, regardles of whether or not they share the same parent in the DOM.
(function ( $ ) {
/**
* A jQuery plugin that will position an element relative to another element, regardles of whether or not they share the
* same parent in the DOM.
*
* Note: This must be called within a $(document).ready() call to work properly. If loading images in the element
* that aren't specifically sized via CSS, it may be necessary to call this within a $(window).load() call
* depending on the positioning used.
*
@jimboobrien
jimboobrien / shortcode.class.php
Created September 20, 2017 23:27 — forked from wpscholar/shortcode.class.php
Creating a class to handle a WordPress shortcode is overkill in most cases. However, it is extremely handy when your shortcode requires helper functions.
<?php
/**
* Creating a class to handle a WordPress shortcode is overkill in most cases.
* However, it is extremely handy when your shortcode requires helper functions.
*/
class My_Shortcode {
protected
$atts = array(),
@jimboobrien
jimboobrien / functions.php
Created September 20, 2017 23:28 — forked from wpscholar/functions.php
Enqueueing IE conditional stylesheets in WordPress the right way
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_my_styles' );
/**
* Example callback function that demonstrates how to properly enqueue conditional stylesheets in WordPress for IE.
* IE10 and up does not support conditional comments in standards mode.
*
* @uses wp_style_add_data() WordPress function to add the conditional data.
* @link https://developer.wordpress.org/reference/functions/wp_style_add_data/