SlideShare a Scribd company logo
1 of 30
Amanda Giles
@AmandaGilesNH
amandagiles.com/ampup
Mar 25, 2017
*From NH
*Independent IT Consultant for over 10 years
*Using WordPress since 2009
*Speaking at WordCamps since 2014
*WordPress Theme Developer
*Founded the Seacoast NH
WordPress Meetup in 2011
*Founded Spark Development in 2016
*Kettlebeller
*Poetess
*Epic Sneezes
*Make your client feel welcome (i.e. brand the site)
*Make help and contact info easily accessible
*Give them access to more data
*Give them a better content editing experience
*Give them access to more information!!!
1. Logo Image
2. Logo Link
3. Logo ALT text
4. Background Color
5. Button Color
//Custom CSS for login page
function login_css() {
wp_enqueue_style('login-page',
get_template_directory_uri() . '/css/login.css', false );
}
// Change logo link from wordpress.org to your site’s url
function login_url() { return home_url(); }
// Change the alt text on the logo to show your site’s name
function login_title() { return get_option('blogname'); }
// calling it only on the login page
add_action( 'login_enqueue_scripts', 'login_css', 10 );
add_filter( 'login_headerurl', 'login_url');
add_filter( 'login_headertitle', 'login_title');
From Bones theme by Eddie Machado - http://themble.com/bones/
Go from this:
To this:
// Custom Backend Footer
function custom_admin_footer() { ?>
<span id="footer-thankyou">
Developed by <a href="http://amandagiles.com"
target="_blank">Amanda Giles</a>. For help with this site,
please <a href="mailto:amanda@amandagiles.com">email
me</a>.
<span>
<?php }
// adding it to the admin area
add_filter('admin_footer_text', 'custom_admin_footer');
From Bones theme by Eddie Machado - http://themble.com/bones/
// Adds new column headers to 'movies' post type
function movies_add_new_columns($columns) {
//Remove irrelevant columns
unset($columns['author']);
unset($columns['comments']);
unset($columns['date']);
$columns['release'] = 'Release Date';
return $columns;
}
add_filter('manage_edit-movies_columns', 'movies_add_new_columns');
// Adds content to new columns for 'movies' post type
function movies_manage_columns($column_name, $id) {
global $post;
switch ($column_name) {
case 'release':
echo get_post_meta( $post->ID , 'release-year' , true );
break;
}
}
add_action('manage_movies_posts_custom_column', 'movies_manage_columns', 10, 2);
// Make new 'movies' columns sortable
function movies_columns_sortable($columns) {
$custom = array(
'release' => 'release',
);
return wp_parse_args($custom, $columns);
}
add_filter('manage_edit-movies_sortable_columns', 'movies_columns_sortable');
// Handle ordering for 'movies' columns
function movies_columns_orderby( $vars ) {
if ( isset( $vars['orderby'] ) ) {
if ( 'release' == $vars['release'] )
$vars = array_merge( $vars, array(
'orderby' => 'meta_value_num', 'meta_key' => 'release-year') );
}
return $vars;
}
add_filter( 'request', 'movies_columns_orderby' );
// Adds a filter in the Admin list pages on taxonomy for easier locating
function movie_genre_filter_admin_content() {
global $typenow;
if( $typenow == "movies") { $taxonomies = array('genre'); }
if (isset($taxonomies)) {
foreach ($taxonomies as $tax_slug) {
$tax_obj = get_taxonomy($tax_slug);
$tax_name = $tax_obj->labels->name;
$terms = get_terms($tax_slug);
echo "<select name='$tax_slug' id='$tax_slug' class='postform'>";
echo "<option value=''>Show All $tax_name</option>";
foreach ($terms as $term) {
$label = (isset($_GET[$tax_slug])) ? $_GET[$tax_slug] : '';
echo '<option value='. $term->slug,
$label == $term->slug ? ' selected="selected"' : '','>' .
$term->name .'</option>';
}
}
}
}
add_action( 'restrict_manage_posts', 'movie_genre_filter_admin_content' );
// Apply styles to content editor to make it match the site
function add_custom_editor_style() {
//Looks for an 'editor-style.css' in your theme folder
add_editor_style();
//Or call it with a custom file name if you choose
//(helpful especially when keeping css in a subfolder)
//add_editor_style('css/my-editor-style.css');
}
add_action( 'admin_init', 'add_custom_editor_style' );
// Add Google Fonts to the Admin editor
function add_google_fonts_admin_editor() {
$font_url = 'https://fonts.googleapis.com/css?family=Dancing+Script:400,700';
//Encode Google Fonts URL if it contains commas
add_editor_style( esc_url( $font_url ) );
}
add_action( 'admin_init', 'add_google_fonts_admin_editor' );
/*
* Adding new TinyMCE styles to editor
* https://codex.wordpress.org/TinyMCE_Custom_Styles
*/
// Callback function to insert 'styleselect' into the $buttons array
function add_tiny_mce_buttons( $buttons ) {
array_unshift( $buttons, 'styleselect' );
return $buttons;
}
// Register our callback to the appropriate filter (2 means 2nd row)
add_filter('mce_buttons_2', 'add_tiny_mce_buttons');
// Callback function to filter the Tiny MCE settings
function tiny_mce_add_styles( $init_array ) {
// Define the style_formats array
$style_formats = array(
// Each array child is a format with its own settings
array(
'title' => 'Blue Title',
'block' => 'div',
'classes' => 'blue-title'
)
);
// Insert the array, JSON ENCODED, into 'style_formats'
$init_array['style_formats'] = json_encode( $style_formats );
return $init_array;
}
add_filter('tiny_mce_before_init','tiny_mce_add_styles' );
More details at: https://codex.wordpress.org/TinyMCE_Custom_Styles
//Add widget to dashboard page
function add_movies_dashboard_widgets() {
wp_add_dashboard_widget('movies-widget', 'Recent Movies', 'movies_dashboard_widget');
}
add_action('wp_dashboard_setup', 'add_movies_dashboard_widgets');
//Dashboard widget logic (can be anything!)
function movies_dashboard_widget() {
$args = array ( 'post_type' => 'movies', 'posts_per_page' => 5 );
$movies = new WP_Query( $args );
if($movies->have_posts()) :
while($movies->have_posts()): $movies->the_post();
echo '<div style="margin-bottom: 10px;">';
$url = home_url() . "/wp-admin/post.php?post=" . get_the_id() . '&action=edit';
echo '<a href="' . $url . '">' . get_the_title() . '</a> - ';
echo get_post_meta( get_the_id(), 'release-year' , true ) . '</div>';
endwhile;
endif;
}
//Add Links to Admin Bar
function movie_admin_bar_link( $wp_admin_bar ) {
//Only add link for Admins
if (current_user_can( 'manage_options' )) {
$args = array(
'id' => 'movies-page',
'title' => 'Manage Movies',
'href' => home_url() . '/wp-admin/edit.php?post_type=movies',
'meta' => array( 'class' => 'movies-admin-link' )
);
$wp_admin_bar->add_node( $args );
}
}
add_action( 'admin_bar_menu', 'movie_admin_bar_link' );
// Add a page to WP Menu
function add_help_admin_pages() {
add_menu_page('Page Title', 'Menu Title', 'edit_posts',
'unique-menu-slug', 'admin_help_page_function');
}
add_action('admin_menu', 'add_help_admin_pages');
//Define content for that page
function admin_help_page_function() {
//Can be anything you want!
}
Amanda Giles
amandagiles.com/ampup
@AmandaGilesNH
Heart Graphic from
http://halfblog.net/2012/02/12/wordpress-users-wales-meet-up-wednesday-29th-february/heartpress/

More Related Content

What's hot

A New Baseline for Front-End Devs
A New Baseline for Front-End DevsA New Baseline for Front-End Devs
A New Baseline for Front-End DevsRebecca Murphey
 
Routing in Drupal 8
Routing in Drupal 8Routing in Drupal 8
Routing in Drupal 8kgoel1
 
Add edit delete in Codeigniter in PHP
Add edit delete in Codeigniter in PHPAdd edit delete in Codeigniter in PHP
Add edit delete in Codeigniter in PHPVineet Kumar Saini
 
WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes Paul Bearne
 
How kris-writes-symfony-apps-london
How kris-writes-symfony-apps-londonHow kris-writes-symfony-apps-london
How kris-writes-symfony-apps-londonKris Wallsmith
 
Country State City Dropdown in PHP
Country State City Dropdown in PHPCountry State City Dropdown in PHP
Country State City Dropdown in PHPVineet Kumar Saini
 
Gravity Forms Hooks & Filters
Gravity Forms Hooks & FiltersGravity Forms Hooks & Filters
Gravity Forms Hooks & Filtersiamdangavin
 
Advanced jQuery
Advanced jQueryAdvanced jQuery
Advanced jQuerysergioafp
 
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...allilevine
 
Symfony CoP: Form component
Symfony CoP: Form componentSymfony CoP: Form component
Symfony CoP: Form componentSamuel ROZE
 
Drupal is Stupid (But I Love It Anyway)
Drupal is Stupid (But I Love It Anyway)Drupal is Stupid (But I Love It Anyway)
Drupal is Stupid (But I Love It Anyway)brockboland
 

What's hot (20)

Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your Code
 
A New Baseline for Front-End Devs
A New Baseline for Front-End DevsA New Baseline for Front-End Devs
A New Baseline for Front-End Devs
 
Routing in Drupal 8
Routing in Drupal 8Routing in Drupal 8
Routing in Drupal 8
 
BEAR DI
BEAR DIBEAR DI
BEAR DI
 
Add edit delete in Codeigniter in PHP
Add edit delete in Codeigniter in PHPAdd edit delete in Codeigniter in PHP
Add edit delete in Codeigniter in PHP
 
Dojo Confessions
Dojo ConfessionsDojo Confessions
Dojo Confessions
 
WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes
 
Matters of State
Matters of StateMatters of State
Matters of State
 
How kris-writes-symfony-apps-london
How kris-writes-symfony-apps-londonHow kris-writes-symfony-apps-london
How kris-writes-symfony-apps-london
 
Pagination in PHP
Pagination in PHPPagination in PHP
Pagination in PHP
 
Country State City Dropdown in PHP
Country State City Dropdown in PHPCountry State City Dropdown in PHP
Country State City Dropdown in PHP
 
Keeping It Simple
Keeping It SimpleKeeping It Simple
Keeping It Simple
 
Gravity Forms Hooks & Filters
Gravity Forms Hooks & FiltersGravity Forms Hooks & Filters
Gravity Forms Hooks & Filters
 
Advanced jQuery
Advanced jQueryAdvanced jQuery
Advanced jQuery
 
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...
WordCamp Montreal 2015: Combining Custom Post Types, Fields, and Meta Boxes t...
 
Facebook
FacebookFacebook
Facebook
 
Bacbkone js
Bacbkone jsBacbkone js
Bacbkone js
 
Symfony CoP: Form component
Symfony CoP: Form componentSymfony CoP: Form component
Symfony CoP: Form component
 
Drupal 8 Routing
Drupal 8 RoutingDrupal 8 Routing
Drupal 8 Routing
 
Drupal is Stupid (But I Love It Anyway)
Drupal is Stupid (But I Love It Anyway)Drupal is Stupid (But I Love It Anyway)
Drupal is Stupid (But I Love It Anyway)
 

Viewers also liked

Building Background: Beyond the Textbook
Building Background: Beyond the TextbookBuilding Background: Beyond the Textbook
Building Background: Beyond the TextbookE. Alicia Theadore
 
3Com 3C905CX-MLP
3Com 3C905CX-MLP3Com 3C905CX-MLP
3Com 3C905CX-MLPsavomir
 
C6.mi.p1.s6. conocimiento científico
C6.mi.p1.s6. conocimiento científicoC6.mi.p1.s6. conocimiento científico
C6.mi.p1.s6. conocimiento científicoMartín Ramírez
 
Presentacion de diapositivas para socializacion proyecto pedagogico francy
Presentacion de diapositivas para socializacion proyecto pedagogico francyPresentacion de diapositivas para socializacion proyecto pedagogico francy
Presentacion de diapositivas para socializacion proyecto pedagogico francyacesi paez cauca
 
How Duplicate Content impact your Website
How Duplicate Content impact your WebsiteHow Duplicate Content impact your Website
How Duplicate Content impact your WebsiteKaustubh Patel
 
Tarea 7 biologia y conducata
Tarea 7 biologia y conducataTarea 7 biologia y conducata
Tarea 7 biologia y conducataJOSUE SANTANA
 
Being Green in a Changing World of Search Engine Optimization
Being Green in a Changing World of Search Engine OptimizationBeing Green in a Changing World of Search Engine Optimization
Being Green in a Changing World of Search Engine OptimizationRebecca Gill
 
The Way to Theme Enlightenment
The Way to Theme EnlightenmentThe Way to Theme Enlightenment
The Way to Theme EnlightenmentAmanda Giles
 
WP REST API: Actionable.co
WP REST API: Actionable.coWP REST API: Actionable.co
WP REST API: Actionable.coShawn Hooper
 
3Com 734938-003
3Com 734938-0033Com 734938-003
3Com 734938-003savomir
 
S4 tarea4 chpa_ypara internet
S4 tarea4 chpa_ypara internetS4 tarea4 chpa_ypara internet
S4 tarea4 chpa_ypara internetYazmin Chavez
 
RANDOMIZED CONTROLLED TRIALS
RANDOMIZED CONTROLLED TRIALSRANDOMIZED CONTROLLED TRIALS
RANDOMIZED CONTROLLED TRIALSgizmoriz
 

Viewers also liked (17)

Building Background: Beyond the Textbook
Building Background: Beyond the TextbookBuilding Background: Beyond the Textbook
Building Background: Beyond the Textbook
 
3Com 3C905CX-MLP
3Com 3C905CX-MLP3Com 3C905CX-MLP
3Com 3C905CX-MLP
 
C6.mi.p1.s6. conocimiento científico
C6.mi.p1.s6. conocimiento científicoC6.mi.p1.s6. conocimiento científico
C6.mi.p1.s6. conocimiento científico
 
Presentacion de diapositivas para socializacion proyecto pedagogico francy
Presentacion de diapositivas para socializacion proyecto pedagogico francyPresentacion de diapositivas para socializacion proyecto pedagogico francy
Presentacion de diapositivas para socializacion proyecto pedagogico francy
 
How Duplicate Content impact your Website
How Duplicate Content impact your WebsiteHow Duplicate Content impact your Website
How Duplicate Content impact your Website
 
Tarea 7 biologia y conducata
Tarea 7 biologia y conducataTarea 7 biologia y conducata
Tarea 7 biologia y conducata
 
PUNCHLINE QUIZ
PUNCHLINE QUIZPUNCHLINE QUIZ
PUNCHLINE QUIZ
 
Business Quiz
Business QuizBusiness Quiz
Business Quiz
 
Being Green in a Changing World of Search Engine Optimization
Being Green in a Changing World of Search Engine OptimizationBeing Green in a Changing World of Search Engine Optimization
Being Green in a Changing World of Search Engine Optimization
 
The Way to Theme Enlightenment
The Way to Theme EnlightenmentThe Way to Theme Enlightenment
The Way to Theme Enlightenment
 
WP REST API: Actionable.co
WP REST API: Actionable.coWP REST API: Actionable.co
WP REST API: Actionable.co
 
3Com 734938-003
3Com 734938-0033Com 734938-003
3Com 734938-003
 
Bustamante ar
Bustamante arBustamante ar
Bustamante ar
 
S4 tarea4 chpa_ypara internet
S4 tarea4 chpa_ypara internetS4 tarea4 chpa_ypara internet
S4 tarea4 chpa_ypara internet
 
Cbfc1103 (1)
Cbfc1103 (1)Cbfc1103 (1)
Cbfc1103 (1)
 
Study on banking sector
Study on banking sectorStudy on banking sector
Study on banking sector
 
RANDOMIZED CONTROLLED TRIALS
RANDOMIZED CONTROLLED TRIALSRANDOMIZED CONTROLLED TRIALS
RANDOMIZED CONTROLLED TRIALS
 

Similar to Amp Up Your Admin

Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ EtsyNishan Subedi
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For BeginnersJonathan Wage
 
WordCamp Denver 2012 - Custom Meta Boxes
WordCamp Denver 2012 - Custom Meta BoxesWordCamp Denver 2012 - Custom Meta Boxes
WordCamp Denver 2012 - Custom Meta BoxesJeremy Green
 
Laying the proper foundation for plugin and theme development
Laying the proper foundation for plugin and theme developmentLaying the proper foundation for plugin and theme development
Laying the proper foundation for plugin and theme developmentTammy Hart
 
[WLDN] Supercharging word press development in 2018
[WLDN] Supercharging word press development in 2018[WLDN] Supercharging word press development in 2018
[WLDN] Supercharging word press development in 2018Adam Tomat
 
WordPress as an application framework
WordPress as an application frameworkWordPress as an application framework
WordPress as an application frameworkDustin Filippini
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hackingJeroen van Dijk
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hackingJeroen van Dijk
 
laravel tricks in 50minutes
laravel tricks in 50minuteslaravel tricks in 50minutes
laravel tricks in 50minutesBarang CK
 
50 Laravel Tricks in 50 Minutes
50 Laravel Tricks in 50 Minutes50 Laravel Tricks in 50 Minutes
50 Laravel Tricks in 50 MinutesAzim Kurt
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
 
WordPress Configuration tips
WordPress Configuration tipsWordPress Configuration tips
WordPress Configuration tipsMasharul Pamir
 
06 Php Mysql Connect Query
06 Php Mysql Connect Query06 Php Mysql Connect Query
06 Php Mysql Connect QueryGeshan Manandhar
 
Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17Dan Poltawski
 
Drupal Development (Part 2)
Drupal Development (Part 2)Drupal Development (Part 2)
Drupal Development (Part 2)Jeff Eaton
 
Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Fabien Potencier
 
Unit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxMichelangelo van Dam
 
Creating a Simple PHP and MySQL-Based Login System
Creating a Simple PHP and MySQL-Based Login SystemCreating a Simple PHP and MySQL-Based Login System
Creating a Simple PHP and MySQL-Based Login SystemAzharul Haque Shohan
 

Similar to Amp Up Your Admin (20)

Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For Beginners
 
WordCamp Denver 2012 - Custom Meta Boxes
WordCamp Denver 2012 - Custom Meta BoxesWordCamp Denver 2012 - Custom Meta Boxes
WordCamp Denver 2012 - Custom Meta Boxes
 
Laying the proper foundation for plugin and theme development
Laying the proper foundation for plugin and theme developmentLaying the proper foundation for plugin and theme development
Laying the proper foundation for plugin and theme development
 
[WLDN] Supercharging word press development in 2018
[WLDN] Supercharging word press development in 2018[WLDN] Supercharging word press development in 2018
[WLDN] Supercharging word press development in 2018
 
WordPress as an application framework
WordPress as an application frameworkWordPress as an application framework
WordPress as an application framework
 
Add loop shortcode
Add loop shortcodeAdd loop shortcode
Add loop shortcode
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hacking
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hacking
 
laravel tricks in 50minutes
laravel tricks in 50minuteslaravel tricks in 50minutes
laravel tricks in 50minutes
 
50 Laravel Tricks in 50 Minutes
50 Laravel Tricks in 50 Minutes50 Laravel Tricks in 50 Minutes
50 Laravel Tricks in 50 Minutes
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
 
WordPress Configuration tips
WordPress Configuration tipsWordPress Configuration tips
WordPress Configuration tips
 
06 Php Mysql Connect Query
06 Php Mysql Connect Query06 Php Mysql Connect Query
06 Php Mysql Connect Query
 
Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17
 
Drupal Development (Part 2)
Drupal Development (Part 2)Drupal Development (Part 2)
Drupal Development (Part 2)
 
Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)
 
Unit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBenelux
 
php2.pptx
php2.pptxphp2.pptx
php2.pptx
 
Creating a Simple PHP and MySQL-Based Login System
Creating a Simple PHP and MySQL-Based Login SystemCreating a Simple PHP and MySQL-Based Login System
Creating a Simple PHP and MySQL-Based Login System
 

Recently uploaded

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistKHM Anwar
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goasexy call girls service in goa
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 

Recently uploaded (20)

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 

Amp Up Your Admin

  • 2. *From NH *Independent IT Consultant for over 10 years *Using WordPress since 2009 *Speaking at WordCamps since 2014 *WordPress Theme Developer *Founded the Seacoast NH WordPress Meetup in 2011 *Founded Spark Development in 2016 *Kettlebeller *Poetess *Epic Sneezes
  • 3. *Make your client feel welcome (i.e. brand the site) *Make help and contact info easily accessible *Give them access to more data *Give them a better content editing experience *Give them access to more information!!!
  • 4.
  • 5.
  • 6. 1. Logo Image 2. Logo Link 3. Logo ALT text 4. Background Color 5. Button Color
  • 7. //Custom CSS for login page function login_css() { wp_enqueue_style('login-page', get_template_directory_uri() . '/css/login.css', false ); } // Change logo link from wordpress.org to your site’s url function login_url() { return home_url(); } // Change the alt text on the logo to show your site’s name function login_title() { return get_option('blogname'); } // calling it only on the login page add_action( 'login_enqueue_scripts', 'login_css', 10 ); add_filter( 'login_headerurl', 'login_url'); add_filter( 'login_headertitle', 'login_title'); From Bones theme by Eddie Machado - http://themble.com/bones/
  • 9. // Custom Backend Footer function custom_admin_footer() { ?> <span id="footer-thankyou"> Developed by <a href="http://amandagiles.com" target="_blank">Amanda Giles</a>. For help with this site, please <a href="mailto:amanda@amandagiles.com">email me</a>. <span> <?php } // adding it to the admin area add_filter('admin_footer_text', 'custom_admin_footer'); From Bones theme by Eddie Machado - http://themble.com/bones/
  • 10.
  • 11.
  • 12. // Adds new column headers to 'movies' post type function movies_add_new_columns($columns) { //Remove irrelevant columns unset($columns['author']); unset($columns['comments']); unset($columns['date']); $columns['release'] = 'Release Date'; return $columns; } add_filter('manage_edit-movies_columns', 'movies_add_new_columns'); // Adds content to new columns for 'movies' post type function movies_manage_columns($column_name, $id) { global $post; switch ($column_name) { case 'release': echo get_post_meta( $post->ID , 'release-year' , true ); break; } } add_action('manage_movies_posts_custom_column', 'movies_manage_columns', 10, 2);
  • 13. // Make new 'movies' columns sortable function movies_columns_sortable($columns) { $custom = array( 'release' => 'release', ); return wp_parse_args($custom, $columns); } add_filter('manage_edit-movies_sortable_columns', 'movies_columns_sortable'); // Handle ordering for 'movies' columns function movies_columns_orderby( $vars ) { if ( isset( $vars['orderby'] ) ) { if ( 'release' == $vars['release'] ) $vars = array_merge( $vars, array( 'orderby' => 'meta_value_num', 'meta_key' => 'release-year') ); } return $vars; } add_filter( 'request', 'movies_columns_orderby' );
  • 14.
  • 15. // Adds a filter in the Admin list pages on taxonomy for easier locating function movie_genre_filter_admin_content() { global $typenow; if( $typenow == "movies") { $taxonomies = array('genre'); } if (isset($taxonomies)) { foreach ($taxonomies as $tax_slug) { $tax_obj = get_taxonomy($tax_slug); $tax_name = $tax_obj->labels->name; $terms = get_terms($tax_slug); echo "<select name='$tax_slug' id='$tax_slug' class='postform'>"; echo "<option value=''>Show All $tax_name</option>"; foreach ($terms as $term) { $label = (isset($_GET[$tax_slug])) ? $_GET[$tax_slug] : ''; echo '<option value='. $term->slug, $label == $term->slug ? ' selected="selected"' : '','>' . $term->name .'</option>'; } } } } add_action( 'restrict_manage_posts', 'movie_genre_filter_admin_content' );
  • 16.
  • 17. // Apply styles to content editor to make it match the site function add_custom_editor_style() { //Looks for an 'editor-style.css' in your theme folder add_editor_style(); //Or call it with a custom file name if you choose //(helpful especially when keeping css in a subfolder) //add_editor_style('css/my-editor-style.css'); } add_action( 'admin_init', 'add_custom_editor_style' );
  • 18. // Add Google Fonts to the Admin editor function add_google_fonts_admin_editor() { $font_url = 'https://fonts.googleapis.com/css?family=Dancing+Script:400,700'; //Encode Google Fonts URL if it contains commas add_editor_style( esc_url( $font_url ) ); } add_action( 'admin_init', 'add_google_fonts_admin_editor' );
  • 19.
  • 20. /* * Adding new TinyMCE styles to editor * https://codex.wordpress.org/TinyMCE_Custom_Styles */ // Callback function to insert 'styleselect' into the $buttons array function add_tiny_mce_buttons( $buttons ) { array_unshift( $buttons, 'styleselect' ); return $buttons; } // Register our callback to the appropriate filter (2 means 2nd row) add_filter('mce_buttons_2', 'add_tiny_mce_buttons');
  • 21. // Callback function to filter the Tiny MCE settings function tiny_mce_add_styles( $init_array ) { // Define the style_formats array $style_formats = array( // Each array child is a format with its own settings array( 'title' => 'Blue Title', 'block' => 'div', 'classes' => 'blue-title' ) ); // Insert the array, JSON ENCODED, into 'style_formats' $init_array['style_formats'] = json_encode( $style_formats ); return $init_array; } add_filter('tiny_mce_before_init','tiny_mce_add_styles' ); More details at: https://codex.wordpress.org/TinyMCE_Custom_Styles
  • 22.
  • 23.
  • 24.
  • 25. //Add widget to dashboard page function add_movies_dashboard_widgets() { wp_add_dashboard_widget('movies-widget', 'Recent Movies', 'movies_dashboard_widget'); } add_action('wp_dashboard_setup', 'add_movies_dashboard_widgets'); //Dashboard widget logic (can be anything!) function movies_dashboard_widget() { $args = array ( 'post_type' => 'movies', 'posts_per_page' => 5 ); $movies = new WP_Query( $args ); if($movies->have_posts()) : while($movies->have_posts()): $movies->the_post(); echo '<div style="margin-bottom: 10px;">'; $url = home_url() . "/wp-admin/post.php?post=" . get_the_id() . '&action=edit'; echo '<a href="' . $url . '">' . get_the_title() . '</a> - '; echo get_post_meta( get_the_id(), 'release-year' , true ) . '</div>'; endwhile; endif; }
  • 26.
  • 27. //Add Links to Admin Bar function movie_admin_bar_link( $wp_admin_bar ) { //Only add link for Admins if (current_user_can( 'manage_options' )) { $args = array( 'id' => 'movies-page', 'title' => 'Manage Movies', 'href' => home_url() . '/wp-admin/edit.php?post_type=movies', 'meta' => array( 'class' => 'movies-admin-link' ) ); $wp_admin_bar->add_node( $args ); } } add_action( 'admin_bar_menu', 'movie_admin_bar_link' );
  • 28.
  • 29. // Add a page to WP Menu function add_help_admin_pages() { add_menu_page('Page Title', 'Menu Title', 'edit_posts', 'unique-menu-slug', 'admin_help_page_function'); } add_action('admin_menu', 'add_help_admin_pages'); //Define content for that page function admin_help_page_function() { //Can be anything you want! }
  • 30. Amanda Giles amandagiles.com/ampup @AmandaGilesNH Heart Graphic from http://halfblog.net/2012/02/12/wordpress-users-wales-meet-up-wednesday-29th-february/heartpress/