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

Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
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
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
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
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
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
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneRussian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneCall girls in Ahmedabad High profile
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
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 Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 

Recently uploaded (20)

Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
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
 
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
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
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...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
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...
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
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
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneRussian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
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 Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 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/