jigsaw
jigsaw copied to clipboard
Simple ways to make admin customizations for WordPress
Simple ways to make admin customizations for WordPress. You know all that brain space you saved for memorizing hooks? Use it for something better. For example, you can...
Add a column to an admin page!
Jigsaw::add_column($post_type, $column_label, $callback_function, $order = 10);
Jigsaw::add_column('slides', 'Preview', function($pid){
$data = array();
$data['post'] = new TimberPost($pid);
Timber::render('admin/slide-table-preview.twig', $data);
}, 5);
Jigsaw::add_column(array('slides', 'post'), 'Preview', function($pid){
$data = array();
$data['post'] = new TimberPost($pid);
Timber::render('admin/slide-table-preview.twig', $data);
});
Add a column to the users table!
Jigsaw::add_user_column($column_label, $callback_function, $order = 10);
Jigsaw::add_user_column('Favorite Band', function($uid){
echo get_user_meta($uid, 'favorite-band', true);
}, 5);
Remove a column from the admin
Jigsaw::remove_column($post_types, $column_slug);
Jigsaw::remove_column('slides', 'author');
Jigsaw::remove_column(array('slides', 'post'), 'author');
Add something to the admin bar
Jigsaw::add_toolbar_item($label, $url_or_callback_function);
Jigsaw::add_toolbar_item('Clear Cache', function(){
$total_cache->flush_all();
});
Add a dropdown
Jigsaw::add_toolbar_group($label, $items);
$optionOne = new stdClass();
$optionOne->label = 'All Caches';
$optionOne->action = function(){
$total_cache->flush_all();
};
$optionTwo = new stdClass();
$optionTwo->label = 'Page Cache';
$optionTwo->action = function(){
$total_cache->flush_page_cache();
};
$optionThree = array('Home', 'http://localhost');
Jigsaw::add_toolbar_group('Clear Cache', array($optionOne, $optionTwo, $optionThree));
Show an admin notice
Jigsaw::show_notice($message, $level = 'updated');
Jigsaw::show_notice('Cache has been flushed', 'updated');
...or
Jigsaw::show_notice('Error flushing cache, is the plugin activated?', 'error');
Add a CSS file to the admin
Jigsaw::add_css($css_file);
Jigsaw::add_css('css/my-admin-style.css');
Add a JS file to the admin
Jigsaw::add_js($css_file);
Jigsaw::add_js('js/my-admin-script.js');
JigsawPermalinks
Set the base of the author permalink
JigsawPermalinks::set_author_base($base_string);
JigsawPermalinks::set_author_base('writers');
After this you have to reset permalinks to see it working.
Remove a custom post type permalink
JigsawPermalinks::remove_permalink_slug($custom_post_type)
;
JigsawPermalinks::remove_permalink_slug('event');
or
JigsawPermalinks::remove_permalink_slug(array('event', 'book', 'my_other_cpt'));
Set a custom permalink
JigsawPermalinks::set_permalink($post_type, $structure);
JigsawPermalinks::set_permalink('gallery', '/galleries/%year%/%gallery%');