Skip to content

Instantly share code, notes, and snippets.

View jbreitenbucher's full-sized avatar

Jon Breitenbucher jbreitenbucher

View GitHub Profile
@jbreitenbucher
jbreitenbucher / WordPress Custom Function Library
Created October 15, 2014 13:06
Common WordPress custom functions
/* Limit Your Website Excerpt */
function word_limit($string, $max_words){
$post_words = explode(' ', $string);
$count = count($post_words);
$post_words = implode(' ', array_slice($post_words, 0, $max_words));
@jbreitenbucher
jbreitenbucher / genesis-staff-listing
Last active August 29, 2015 14:07
Code for including page templates from within my Genesis Staff Listing plugin (requires the StudioPress Genesis theme)
<?php
error_reporting(E_ALL);
/*
Plugin Name: Genesis Staff Listing
Plugin URI: http://orthogonalcreations.com
Description: This plugin adds a Staff custom post type and role taxonomy. It also includes templates for displaying the Staff post type.
Author: Jon Breitenbucher
Author URI: http://orthogonalcreations.com
Version: 1.1
@jbreitenbucher
jbreitenbucher / gist:3648028
Created September 5, 2012 23:52
WordPress: Load templates from within a plugin
function get_custom_archive_template($template) {
global $wp_query;
$object = $wp_query->get_queried_object();
if ( 'gslstaff' == $object->post_type ) {
$templates = array();
if ( $object->post_type )
$templates[] = "archive-{$object->post_type}.php";
$templates[] = 'archive.php';
@jbreitenbucher
jbreitenbucher / order taxonomy
Created July 31, 2012 23:12
WordPress: Order Custom Taxonomy Term page by custom key
/**
* Make sure to order staff on role term pages alphabetically by last name
*
* @author Jon Breitenbucher <jbreitenbucher@wooster.edu>
* @version SVN: $Id$
* @param array $query Default query arguments
* @return array modified query arguments
*
* @since 2.0
*
@jbreitenbucher
jbreitenbucher / gist:2948888
Created June 18, 2012 15:22
CMB: MCEDC metabox
<?php
/**
* Metaboxes
*
* This file registers any custom metaboxes
*
* @package mcedc
* @author The Pedestal Group <kathy@thepedestalgroup.com>
* @copyright Copyright (c) 2012, Medina County Economic Development Corporation
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
@jbreitenbucher
jbreitenbucher / gist:2710977
Created May 16, 2012 14:57
WordPress:Limit Administration Menus by Role
function jb_remove_menus_by_role () {
global $menu;
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if($user_role == 'xxx') {
$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
@jbreitenbucher
jbreitenbucher / gist:2586365
Created May 3, 2012 15:11
Code to remove Vary
<FilesMatch "\.(oga | ogg | m4a | ogv | mp4 | m4v | webm)$" >
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
Header append Vary Host env=!dont-vary
Header append Vary Accept-Encoding env=!dont-vary
</IfModule>
</FilesMatch>
@jbreitenbucher
jbreitenbucher / gist:2019784
Created March 12, 2012 04:25 — forked from billerickson/gist:1650977
Genesis: Admin Pages - Complete
<?php
/**
* Child Theme Settings
* Requires Genesis 1.8 or later
*
* This file registers all of this child theme's specific Theme Settings, accessible from
* Genesis > Child Theme Settings.
*
* @package BE Genesis Child
* @author Bill Erickson <bill@billerickson.net>
@jbreitenbucher
jbreitenbucher / gist:1996840
Created March 7, 2012 22:48
WordPress: Options Page Boilerplate
class __JB_Options__ {
public __construct()
{
}
public add_menu_page()
{
add_options_page('__Menu Name__','__Menu Name___','administrator',__FILE__,array('__JB_Options__','display_options_page');
@jbreitenbucher
jbreitenbucher / gist:1996837
Created March 7, 2012 22:47
WordPress: Widget Boilerplate
class JB-__Class Name__ extends WP_Widget {
function __construct()
{
$params = array(
'description' => '',
'name' => ''
);
parent::__contruct('','',$params);