Created
July 17, 2014 22:34
-
-
Save bryanwillis/bc2a391788520a6bd4e2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*-----------------------------------------------------------------------------------*/ | |
/* Remove Wordpress Post Columns */ | |
/*-----------------------------------------------------------------------------------*/ | |
function remove_post_columns($columns) { | |
//unset($columns['cb']); // Remove the checkbox | |
unset($columns['author']); // Remove the Author | |
//unset($columns['comments']); // Remove comments column | |
//unset($columns['date']); // Remove date column | |
//unset($columns['title']); // Remove title column | |
return $columns; | |
} | |
add_filter('manage_posts_columns', 'remove_post_columns'); | |
/*-----------------------------------------------------------------------------------*/ | |
/* Remove Wordpress Pages Columns */ | |
/*-----------------------------------------------------------------------------------*/ | |
function remove_pages_columns($columns) { | |
//unset($columns['cb']); // Remove the checkbox | |
unset($columns['author']); // Remove the Author | |
unset($columns['comments']); // Remove comments column | |
//unset($columns['date']); // Remove date column | |
//unset($columns['title']); // Remove title column | |
return $columns; | |
} | |
add_filter('manage_pages_columns', 'remove_pages_columns'); | |
/*-----------------------------------------------------------------------------------*/ | |
/* ADD ID to Page Columns */ | |
/*-----------------------------------------------------------------------------------*/ | |
if ( is_admin() | |
&& function_exists( 'add_action' ) | |
&& function_exists( 'add_filter' ) | |
&& function_exists( 'get_taxonomies' ) | |
&& function_exists( 'get_post_types' ) | |
) { | |
add_action( 'admin_init' , 'hh_add_custom_columns' ); | |
add_action( 'admin_head' , 'hh_add_custom_columns_css' ); | |
} | |
function hh_add_custom_columns () { | |
add_filter( 'manage_media_columns' , 'hh_custom_column_add' ); | |
add_action( 'manage_media_custom_column' , 'hh_custom_column_value' , 10 , 2 ); | |
add_filter( 'manage_link-manager_columns' , 'hh_custom_column_add' ); | |
add_action( 'manage_link_custom_column' , 'column_value' , 10 , 2 ); | |
add_action( 'manage_edit-link-categories_columns' , 'hh_custom_column_add' ); | |
add_filter( 'manage_link_categories_custom_column' , 'column_return_value' , 10 , 3 ); | |
foreach( get_taxonomies() as $taxonomy ) { | |
add_action( "manage_edit-${taxonomy}_columns" , 'hh_custom_column_add' ); | |
add_filter( "manage_${taxonomy}_custom_column" , 'hh_custom_column_return_value' , 10 , 3 ); | |
add_filter( "manage_edit-${taxonomy}_sortable_columns" , 'hh_custom_column_add' ); | |
} | |
foreach( get_post_types() as $ptype ) { | |
add_action( "manage_edit-${ptype}_columns" , 'hh_custom_column_add' ); | |
add_filter( "manage_${ptype}_posts_custom_column" , 'hh_custom_column_value' , 10 , 3 ); | |
add_filter( "manage_edit-${ptype}_sortable_columns" , 'hh_custom_column_add' ); | |
} | |
add_action( 'manage_users_columns' , 'hh_custom_column_add' ); | |
add_filter( 'manage_users_custom_column' , 'hh_custom_column_return_value' , 10 , 3 ); | |
add_filter( "manage_users_sortable_columns" , 'hh_custom_column_add' ); | |
add_action( 'manage_edit-comments_columns' , 'hh_custom_column_add' ); | |
add_action( 'manage_comments_custom_column' , 'hh_custom_column_value' , 10 , 2 ); | |
add_filter( "manage_edit-comments_sortable_columns" , 'hh_custom_column_add' ); | |
} | |
function hh_custom_column_add ( $columns ) { | |
$column_id = array( 'hh_id' => __( 'ID' ) ); | |
$columns = array_slice( $columns, 0, 1, true ) + $column_id + array_slice( $columns, 1, NULL, true ); | |
return $columns; | |
} | |
function hh_custom_column_value ( $column_name , $id ) { | |
if ( $column_name === 'hh_id' ) { | |
echo $id; | |
} | |
} | |
function hh_custom_column_return_value ( $value , $column_name , $id ) { | |
if ( $column_name === 'hh_id' ) { | |
$value .= $id; | |
} | |
return $value; | |
} | |
function hh_add_custom_columns_css() { | |
echo PHP_EOL . '<style type="text/css"> table.widefat th.column-hh_id { width: 50px; } </style>' . PHP_EOL; | |
} | |
/*-----------------------------------------------------------------------------------*/ | |
/* Filter Tables and Sticky Headers */ | |
/*-----------------------------------------------------------------------------------*/ | |
if ( !function_exists( 'jquery_live_filter_wp_list_tables' ) ) { | |
function jquery_live_filter_wp_list_tables() { | |
$screen = get_current_screen(); | |
$base = $screen->base; | |
$type = $screen->post_type; | |
$name = $screen->id; | |
if ( ( ( $base === 'edit' ) && ($type == 'page' || $type == 'post') ) || ( $name == 'plugins' ) || ( $name == 'snippets_page_snippet' ) ) { | |
if ( wp_script_is( 'jquery', 'done' ) ) { | |
?> | |
<script type="text/javascript"> | |
(function(e,i){"use strict";function t(t,s){var d=this;d.$el=e(t),d.el=t,d.id=l++,d.$window=e(i),d.$document=e(document),d.$el.bind("destroyed",e.proxy(d.teardown,d)),d.$clonedHeader=null,d.$originalHeader=null,d.isSticky=!1,d.hasBeenSticky=!1,d.leftOffset=null,d.topOffset=null,d.init=function(){d.$el.each(function(){var i=e(this);i.css("padding",0),d.$originalHeader=e("thead:first",this),d.$clonedHeader=d.$originalHeader.clone(),i.trigger("clonedHeader."+o,[d.$clonedHeader]),d.$clonedHeader.addClass("tableFloatingHeader"),d.$clonedHeader.css("display","none"),d.$originalHeader.addClass("tableFloatingHeaderOriginal"),d.$originalHeader.after(d.$clonedHeader),d.$printStyle=e('<style type="text/css" media="print">.tableFloatingHeader{display:none !important;}.tableFloatingHeaderOriginal{position:static !important;}</style>'),e("head").append(d.$printStyle)}),d.setOptions(s),d.updateWidth(),d.toggleHeaders(),d.bind()},d.destroy=function(){d.$el.unbind("destroyed",d.teardown),d.teardown()},d.teardown=function(){d.isSticky&&d.$originalHeader.css("position","static"),e.removeData(d.el,"plugin_"+o),d.unbind(),d.$clonedHeader.remove(),d.$originalHeader.removeClass("tableFloatingHeaderOriginal"),d.$originalHeader.css("visibility","visible"),d.$printStyle.remove(),d.el=null,d.$el=null},d.bind=function(){d.$scrollableArea.on("scroll."+o,d.toggleHeaders),d.isWindowScrolling||(d.$window.on("scroll."+o+d.id,d.setPositionValues),d.$window.on("resize."+o+d.id,d.toggleHeaders)),d.$scrollableArea.on("resize."+o,d.toggleHeaders),d.$scrollableArea.on("resize."+o,d.updateWidth)},d.unbind=function(){d.$scrollableArea.off("."+o,d.toggleHeaders),d.isWindowScrolling||(d.$window.off("."+o+d.id,d.setPositionValues),d.$window.off("."+o+d.id,d.toggleHeaders)),d.$scrollableArea.off("."+o,d.updateWidth),d.$el.off("."+o),d.$el.find("*").off("."+o)},d.toggleHeaders=function(){d.$el&&d.$el.each(function(){var i,t=e(this),o=d.isWindowScrolling?isNaN(d.options.fixedOffset)?d.options.fixedOffset.outerHeight():d.options.fixedOffset:d.$scrollableArea.offset().top+(isNaN(d.options.fixedOffset)?0:d.options.fixedOffset),l=t.offset(),n=d.$scrollableArea.scrollTop()+o,s=d.$scrollableArea.scrollLeft(),a=d.isWindowScrolling?n>l.top:o>l.top,r=(d.isWindowScrolling?n:0)<l.top+t.height()-d.$clonedHeader.height()-(d.isWindowScrolling?0:o);a&&r?(i=l.left-s+d.options.leftOffset,d.$originalHeader.css({position:"fixed","margin-top":0,left:i,"z-index":1}),d.leftOffset=i,d.topOffset=o,d.$clonedHeader.css("display",""),d.isSticky||(d.isSticky=!0,d.updateWidth()),d.setPositionValues()):d.isSticky&&(d.$originalHeader.css("position","static"),d.$clonedHeader.css("display","none"),d.isSticky=!1,d.resetWidth(e("td,th",d.$clonedHeader),e("td,th",d.$originalHeader)))})},d.setPositionValues=function(){var e=d.$window.scrollTop(),i=d.$window.scrollLeft();!d.isSticky||0>e||e+d.$window.height()>d.$document.height()||0>i||i+d.$window.width()>d.$document.width()||d.$originalHeader.css({top:d.topOffset-(d.isWindowScrolling?0:e),left:d.leftOffset-(d.isWindowScrolling?0:i)})},d.updateWidth=function(){if(d.isSticky){d.$originalHeaderCells||(d.$originalHeaderCells=e("th,td",d.$originalHeader)),d.$clonedHeaderCells||(d.$clonedHeaderCells=e("th,td",d.$clonedHeader));var i=d.getWidth(d.$clonedHeaderCells);d.setWidth(i,d.$clonedHeaderCells,d.$originalHeaderCells),d.$originalHeader.css("width",d.$clonedHeader.width())}},d.getWidth=function(t){var o=[];return t.each(function(t){var l,n=e(this);if("border-box"===n.css("box-sizing"))l=n.outerWidth();else{var s=e("th",d.$originalHeader);if("collapse"===s.css("border-collapse"))if(i.getComputedStyle)l=parseFloat(i.getComputedStyle(this,null).width);else{var a=parseFloat(n.css("padding-left")),r=parseFloat(n.css("padding-right")),c=parseFloat(n.css("border-width"));l=n.outerWidth()-a-r-c}else l=n.width()}o[t]=l}),o},d.setWidth=function(e,i,t){i.each(function(i){var o=e[i];t.eq(i).css({"min-width":o,"max-width":o})})},d.resetWidth=function(i,t){i.each(function(i){var o=e(this);t.eq(i).css({"min-width":o.css("min-width"),"max-width":o.css("max-width")})})},d.setOptions=function(t){d.options=e.extend({},n,t),d.$scrollableArea=e(d.options.scrollableArea),d.isWindowScrolling=d.$scrollableArea[0]===i},d.updateOptions=function(e){d.setOptions(e),d.unbind(),d.bind(),d.updateWidth(),d.toggleHeaders()},d.init()}var o="stickyTableHeaders",l=0,n={fixedOffset:0,leftOffset:0,scrollableArea:i};e.fn[o]=function(i){return this.each(function(){var l=e.data(this,"plugin_"+o);l?"string"==typeof i?l[i].apply(l):l.updateOptions(i):"destroy"!==i&&e.data(this,"plugin_"+o,new t(this,i))})}})(jQuery,window); | |
</script> | |
<script type="text/javascript"> | |
!function(i){i.fn.bindWithDelay=function(n,u,t,e,d){return i.isFunction(u)&&(d=e,e=t,t=u,u=void 0),t.guid=t.guid||i.guid&&i.guid++,this.each(function(){function l(){var n=i.extend(!0,{},arguments[0]),u=this,l=function(){o=null,t.apply(u,[n])};d||(clearTimeout(o),o=null),o||(o=setTimeout(l,e))}var o=null;l.guid=t.guid,i(this).bind(n,u,l)})}}(jQuery); | |
</script> | |
<script type="text/javascript"> | |
!function(e){var t=e.fn.jquery.split("."),i=parseFloat(t[0]),a=parseFloat(t[1]);e.expr[":"].filterTableFind=2>i&&8>a?function(t,i,a){return e(t).text().toUpperCase().indexOf(a[3].toUpperCase())>=0}:jQuery.expr.createPseudo(function(t){return function(i){return e(i).text().toUpperCase().indexOf(t.toUpperCase())>=0}}),e.fn.filterTable=function(t){var i={autofocus:!1,callback:null,containerClass:"filter-table",containerTag:"p",hideTFootOnFilter:!1,highlightClass:"alt",inputSelector:null,inputName:"",inputType:"search",label:"Filter:",minRows:8,placeholder:"search this table",quickList:[],quickListClass:"quick",quickListGroupTag:"",quickListTag:"a",visibleClass:"visible"},a=function(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")},l=e.extend({},i,t),n=function(e,t){var i=e.find("tbody");""===t?(i.find("tr").show().addClass(l.visibleClass),i.find("td").removeClass(l.highlightClass),l.hideTFootOnFilter&&e.find("tfoot").show()):(i.find("tr").hide().removeClass(l.visibleClass),l.hideTFootOnFilter&&e.find("tfoot").hide(),i.find("td").removeClass(l.highlightClass).filter(':filterTableFind("'+t.replace(/(['"])/g,"\\$1")+'")').addClass(l.highlightClass).closest("tr").show().addClass(l.visibleClass)),l.callback&&l.callback(t,e)};return this.each(function(){var t=e(this),i=t.find("tbody"),s=null,r=null,o=null,c=!0;"TABLE"===t[0].nodeName&&i.length>0&&(0===l.minRows||l.minRows>0&&i.find("tr").length>l.minRows)&&!t.prev().hasClass(l.containerClass)&&(l.inputSelector&&1===e(l.inputSelector).length?(o=e(l.inputSelector),s=o.parent(),c=!1):(s=e("<"+l.containerTag+" />"),""!==l.containerClass&&s.addClass(l.containerClass),s.prepend(l.label+" "),o=e('<input type="'+l.inputType+'" placeholder="'+l.placeholder+'" name="'+l.inputName+'" />')),l.autofocus&&o.attr("autofocus",!0),e.fn.bindWithDelay?o.bindWithDelay("keyup",function(){n(t,e(this).val())},200):o.bind("keyup",function(){n(t,e(this).val())}),o.bind("click search",function(){n(t,e(this).val())}),c&&s.append(o),l.quickList.length>0&&(r=l.quickListGroupTag?e("<"+l.quickListGroupTag+" />"):s,e.each(l.quickList,function(t,i){var n=e("<"+l.quickListTag+' class="'+l.quickListClass+'" />');n.text(a(i)),"A"===n[0].nodeName&&n.attr("href","#"),n.bind("click",function(e){e.preventDefault(),o.val(i).focus().trigger("click")}),r.append(n)}),r!==s&&s.append(r)),c&&t.before(s))})}}(jQuery); | |
</script> | |
<style type="text/css"> | |
.tableFloatingHeaderOriginal { background-color: #ffffff; } | |
</style> | |
<style type="text/css"> | |
.filter-table .quick { margin-left: 0.5em; font-size: 0.8em; text-decoration: none; } | |
.fitler-table .quick:hover { text-decoration: underline; } | |
td.alt { background-color: #ffc; background-color: rgba(255, 255, 0, 0.2); } | |
</style> | |
<script type="text/javascript"> | |
jQuery(document).ready(function($) { | |
$('table').stickyTableHeaders({fixedOffset: 50 }); | |
$('table.wp-list-table').filterTable({ | |
inputSelector: '.search-box input[type=search][name=s]', | |
autofocus: true, | |
placeholder: 'What Are You Looking For?', | |
quickListTag: 'li', | |
hideTFootOnFilter: true | |
}); | |
}); | |
</script> | |
<?php | |
} // wp_script_is | |
} // conditionals | |
} // function | |
add_action( 'admin_print_footer_scripts', 'jquery_live_filter_wp_list_tables', 999 ); | |
} // exists |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment