SlideShare a Scribd company logo
MAKING WORDPRESS
   YOUR CMS
      Remind clients that you exist
    Provide support contact details
          Provide helpful hints
   Tell your clients what you’re doing
Automatically Update Your Plugin
CUSTOM
      LOGIN
     SCREEN
•Add clients logo
•Add link to your site
•Move Error messages above
the logo
LOGIN LOGO

<?php
function my_custom_login_logo() {
   echo '<style type="text/css">
      h1 a { background-image:url('.get_bloginfo('siteurl').'/wp-
content/custom-login-logo.png) !important; }
      .login .message { margin-top:-150px;margin-bottom:
110px;}
   </style>';
}
LOGIN YOUR LINK

<?php
function my_custom_login_credit() { ?>

     <p style="position:absolute;top:428px;left:50%;margin-left:
5px;">served by <a href="http://www.yourdomain.com"
title="Your Name" style="text-decoration:none;">Your
Name</a></p>
<?php }

add_action('login_footer', 'my_custom_login_credit');
?>
CUSTOM
      LOGIN
     SCREEN
•Add clients logo
•Add link to your site
EDITOR
 PERMISSIONS
•Allow editors to manage
menus and widgets
EDITOR PERMISSIONS

<?php
// get the the role object
$role_object = get_role( 'editor' );

// add capability to this role object
$role_object->add_cap( 'edit_theme_options' );
?>
EDITOR
 PERMISSIONS
•Allow editors to manage
menus and widgets
‘PIMP’ THE
    TITLE BAR
•Add your logo
•Add your name and link
•Add support contact details
‘PIMP’ THE TITLE BAR

<?php
add_action('admin_head', 'my_custom_logo');

function my_custom_logo() {
  echo '<style type="text/css">
       #header-logo { background-image: url(http://
yourdomain.com/logo.gif) !important; }</style>';
}?>
‘PIMP’ THE TITLE BAR
<?php
function fs_admin_link() { ?>

    <span style="font:normal 14px Georgia;padding: 8px 8px
5px;margin: 0;float: left;">served by <a href="http://
www.yourdomain.com">Your Name</a> | email: <a
href="mailto:you@yourdomain.co.uk" title="Email Your Name
Support">you@yourdomain.com</a> | tel: 000 0000 0000</
span>
<?php }
add_action('in_admin_header', 'fs_admin_link');
?>
‘PIMP’ THE
    TITLE BAR
•Add your logo
•Add your name and link
•Add support contact details
‘PIMP’ THE
     FOOTER
•Remove unwanted links
•Add your name and link
‘PIMP’ THE FOOTER
<?php
add_filter( 'admin_footer_text', 'my_admin_footer_text' );
function my_admin_footer_text( $default_text ) {
   return '<span id="footer-thankyou">Website managed by
<a href="http://yourdomain.com">Your Name</a><span> |
Powered by <a href="http://
www.wordpress.org">WordPress</a>';
}
?>
‘PIMP’ THE
     FOOTER
•Remove unwanted links
•Add your name and link
DECLUTTER THE DASHBOARD




•Remove confusing widgets
•Add support information
•Add your RSS feed
DECLUTTER THE DASHBOARD
<?php
// remove unnecessary dashboard widgets
function remove_dashboard_widgets(){

      global $wp_meta_boxes;

      // do not remove "Right Now" for administrators

      if (!current_user_can('activate_plugins')) {

      
      unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);

      }

      // remove widgets for everyone

      unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);

      unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);

      unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);

      unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);

      unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
?>
DECLUTTER THE DASHBOARD
<?php
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('my_note_widget', 'Your Name Support', 'custom_dashboard_me');
}

function custom_dashboard_me() {
echo '<p>Welcome to your WordPress Dashboard, from here you can edit all of the content on
your website.</p><p>Need help? For support please email us at <a
href="mailto:you@yourdomain.com">you@yourdomain.com</a>.</p><p>You can find more
information on our <a href="http://www.yourdomain.com" title="Your Title">website</a>.</p>';
}
?>
DECLUTTER THE DASHBOARD
<?php
add_action('wp_dashboard_setup', 'my_dashboard_widgets');
function my_dashboard_widgets() {
    global $wp_meta_boxes;
    // add a custom dashboard widget
    wp_add_dashboard_widget( 'dashboard_custom_feed', 'My News',
'dashboard_custom_feed_output' ); //add new RSS feed output
}
function dashboard_custom_feed_output() {
    echo '
<div class="rss-widget">';
    wp_widget_rss_output(array(
        'url' => 'http://www.yourdomain.com/rss', //put your feed URL here
        'title' => 'My News',
        'items' => 3, //how many posts to show
        'show_summary' => 1,
        'show_author' => 0,
        'show_date' => 1
    ));
    echo "</div>
";
}
?>
DECLUTTER THE DASHBOARD




•Remove confusing widgets
•Add support information
•Add your RSS feed
RECAP
•Make the login screen look pretty
•Allow Editors to manage menus and widgets
•Add your details and logo to the title bar
•Put your name in the footer and remove confusing links
•Make the dashboard less confusing and more useful
•Add these codes to functions.php
•Or even better, your own plugin
•If you create a plugin and add it to all your client sites...
•... enable automatic updates before you start!
HOW TO - AUTO UPDATES

• Visit
     http://w-shadow.com/blog/2010/09/02/automatic-
 updates-for-any-plugin/

• Update    plugin header

• Create   metadata.json

• Zip   your plugin

• Upload   metadata.json and plugin.zip to web server
W-SHADOW.COM
UPDATE PLUGIN HEADER

<?php
require 'plugin-updates/plugin-update-checker.php';
$MyUpdateChecker = new PluginUpdateChecker(
   'http://yourdomain.com/plugins/yourplugin/metadata.json',
   __FILE__,
   'yourplugin'
);
?>
UPLOAD ‘PLUGIN UPDATES’


•Download the file from w-shadow.com
•Add the file to your plugin folder
•Have a beer
•This sets up the WordPress schedule
•Checks every 12 hours
CREATE METADATA.JSON

{
   "name" : "My Plugin Name",
   "slug" : "myslug",
   "download_url" : "http://domain.com/plugins/pluginname/
pluginname.zip",
   "version" : "0.5",
   "author" : "Chris Witham",
   "sections" : {
       "description" : "Add a description here."
 }
UPLOAD TO SERVER
UPLOAD TO SERVER


•Upload metadata.json and plugin.zip to your webserver
•Manually update the plugin on client site
•Ensure client site plugin is looking at your server
•Wait... (now is a good time for another beer!)
•... an hour later, or 12!
UPLOAD TO SERVER


•Upload metadata.json and plugin.zip to your webserver
•Manually update the plugin on client site
•Ensure client site plugin is looking at your server
•Wait... (now is a good time for another beer!)
•... an hour later, or 12!
UPLOAD TO SERVER


•Upload metadata.json and plugin.zip to your webserver
•Manually update the plugin on client site
•Ensure client site plugin is looking at your server
•Wait... (now is a good time for another beer!)
•... an hour later, or 12!
LIVE DEMO...
MAKING WORDPRESS
   YOUR CMS
+ Automatically Update Your Plugin

         By Chris Witham
  For South Yorkshire WordPress
           October 2011
Ad

Recommended

Rebrand WordPress Admin
Rebrand WordPress Admin
Chandra Prakash Thapa
 
Seven deadly theming sins
Seven deadly theming sins
George Stephanis
 
All you need to know about JavaScript loading and execution in the browser - ...
All you need to know about JavaScript loading and execution in the browser - ...
Caelum
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
Chandra Prakash Thapa
 
How to make a WordPress theme
How to make a WordPress theme
Hardeep Asrani
 
Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficada
Caelum
 
Consuming & embedding external content in WordPress
Consuming & embedding external content in WordPress
Akshay Raje
 
PSD to WordPress
PSD to WordPress
Nile Flores
 
Primefaces Nextgen Lju
Primefaces Nextgen Lju
Skills Matter
 
Custom WordPress theme development
Custom WordPress theme development
Tammy Hart
 
Integrating External APIs with WordPress
Integrating External APIs with WordPress
Marty Thornley
 
Integrating WordPress With Web APIs
Integrating WordPress With Web APIs
randyhoyt
 
Introduction Django
Introduction Django
Wade Austin
 
WordPress Theme Development for Designers
WordPress Theme Development for Designers
elliotjaystocks
 
The Themer's Guide to WP-CLI
The Themer's Guide to WP-CLI
Edmund Turbin
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
Josh Lee
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin Development
Brad Williams
 
The wp config.php
The wp config.php
Anthony Montalbano
 
Customizing WordPress Themes
Customizing WordPress Themes
Laura Hartwig
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1
Wataru OKAMOTO
 
Challenges going mobile
Challenges going mobile
Christian Rokitta
 
Scalable web application architecture
Scalable web application architecture
postrational
 
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
camp_drupal_ua
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
Oracle APEX Performance
Oracle APEX Performance
Scott Wesley
 
Html5
Html5
baabtra.com - No. 1 supplier of quality freshers
 
Api
Api
randyhoyt
 
Making it Mine: Customizing a WordPress Theme
Making it Mine: Customizing a WordPress Theme
Tom Hapgood
 
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Md Jahidul Islam
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearing
martinwolak
 

More Related Content

What's hot (19)

Primefaces Nextgen Lju
Primefaces Nextgen Lju
Skills Matter
 
Custom WordPress theme development
Custom WordPress theme development
Tammy Hart
 
Integrating External APIs with WordPress
Integrating External APIs with WordPress
Marty Thornley
 
Integrating WordPress With Web APIs
Integrating WordPress With Web APIs
randyhoyt
 
Introduction Django
Introduction Django
Wade Austin
 
WordPress Theme Development for Designers
WordPress Theme Development for Designers
elliotjaystocks
 
The Themer's Guide to WP-CLI
The Themer's Guide to WP-CLI
Edmund Turbin
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
Josh Lee
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin Development
Brad Williams
 
The wp config.php
The wp config.php
Anthony Montalbano
 
Customizing WordPress Themes
Customizing WordPress Themes
Laura Hartwig
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1
Wataru OKAMOTO
 
Challenges going mobile
Challenges going mobile
Christian Rokitta
 
Scalable web application architecture
Scalable web application architecture
postrational
 
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
camp_drupal_ua
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
Oracle APEX Performance
Oracle APEX Performance
Scott Wesley
 
Html5
Html5
baabtra.com - No. 1 supplier of quality freshers
 
Api
Api
randyhoyt
 
Primefaces Nextgen Lju
Primefaces Nextgen Lju
Skills Matter
 
Custom WordPress theme development
Custom WordPress theme development
Tammy Hart
 
Integrating External APIs with WordPress
Integrating External APIs with WordPress
Marty Thornley
 
Integrating WordPress With Web APIs
Integrating WordPress With Web APIs
randyhoyt
 
Introduction Django
Introduction Django
Wade Austin
 
WordPress Theme Development for Designers
WordPress Theme Development for Designers
elliotjaystocks
 
The Themer's Guide to WP-CLI
The Themer's Guide to WP-CLI
Edmund Turbin
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
Josh Lee
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin Development
Brad Williams
 
Customizing WordPress Themes
Customizing WordPress Themes
Laura Hartwig
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1
Wataru OKAMOTO
 
Scalable web application architecture
Scalable web application architecture
postrational
 
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
Ilivanov Alexander.How to make best theme.DrupalCamp Kyiv 2011
camp_drupal_ua
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
Oracle APEX Performance
Oracle APEX Performance
Scott Wesley
 

Viewers also liked (14)

Making it Mine: Customizing a WordPress Theme
Making it Mine: Customizing a WordPress Theme
Tom Hapgood
 
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Md Jahidul Islam
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearing
martinwolak
 
Wordpress theme development
Wordpress theme development
Naeem Junejo
 
Content Management Systems: An Executive Review
Content Management Systems: An Executive Review
William Price
 
How To Use Wordpress For Dang Near Anything Pcn10
How To Use Wordpress For Dang Near Anything Pcn10
Mitch Canter
 
Creating a WordPress Website that Works from the Start
Creating a WordPress Website that Works from the Start
Nile Flores
 
22 Forex Trading Mistakes Costing you Money
22 Forex Trading Mistakes Costing you Money
xUWx
 
Top 20 WordPress Plugins You've Never Heard Of
Top 20 WordPress Plugins You've Never Heard Of
Brad Williams
 
6 Useful Tips For WordPress Theme Development!
6 Useful Tips For WordPress Theme Development!
TalentsFromIndia.com
 
WordPress Template hierarchy
WordPress Template hierarchy
Jason Yingling
 
Web site proposal
Web site proposal
Navneet Mishra
 
Forex trading strategies
Forex trading strategies
IFC Markets Corp.
 
Supercharge Your WordPress Blog with Plugins
Supercharge Your WordPress Blog with Plugins
Dreb Bitanghol
 
Making it Mine: Customizing a WordPress Theme
Making it Mine: Customizing a WordPress Theme
Tom Hapgood
 
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Dhaka WordPress Meetup 3 - Presentation for Template hierarchy
Md Jahidul Islam
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearing
martinwolak
 
Wordpress theme development
Wordpress theme development
Naeem Junejo
 
Content Management Systems: An Executive Review
Content Management Systems: An Executive Review
William Price
 
How To Use Wordpress For Dang Near Anything Pcn10
How To Use Wordpress For Dang Near Anything Pcn10
Mitch Canter
 
Creating a WordPress Website that Works from the Start
Creating a WordPress Website that Works from the Start
Nile Flores
 
22 Forex Trading Mistakes Costing you Money
22 Forex Trading Mistakes Costing you Money
xUWx
 
Top 20 WordPress Plugins You've Never Heard Of
Top 20 WordPress Plugins You've Never Heard Of
Brad Williams
 
6 Useful Tips For WordPress Theme Development!
6 Useful Tips For WordPress Theme Development!
TalentsFromIndia.com
 
WordPress Template hierarchy
WordPress Template hierarchy
Jason Yingling
 
Supercharge Your WordPress Blog with Plugins
Supercharge Your WordPress Blog with Plugins
Dreb Bitanghol
 
Ad

Similar to Making WordPress Your CMS and Automatically Updating a Self Hosted WordPress Plugin (20)

Presentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
Thibaut Baillet
 
Beyond the WordPress 5 minute Install
Beyond the WordPress 5 minute Install
Steve Taylor
 
WordPress
WordPress
risager
 
Theming Wordpress for Your Showcases
Theming Wordpress for Your Showcases
Jun Hu
 
WordPress Admin UI - Future Proofing Your Admin Pages
WordPress Admin UI - Future Proofing Your Admin Pages
Brandon Dove
 
Wordpress Beyond Websites
Wordpress Beyond Websites
Scott Saunders
 
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Bastian Grimm
 
Creating Your First WordPress Plugin
Creating Your First WordPress Plugin
Brad Williams
 
Introduction to blogging with Jekyll
Introduction to blogging with Jekyll
Eric Lathrop
 
20110820 header new style
20110820 header new style
AgentiadeturismInvenio
 
Source Ordered Templates - - Joomla!Days NL 2009 #jd09nl
Source Ordered Templates - - Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development
Adam Tomat
 
WordPress Security Updated - NYC Meetup 2009
WordPress Security Updated - NYC Meetup 2009
Brad Williams
 
Mobile themes, QR codes, and shortURLs
Mobile themes, QR codes, and shortURLs
Harvard Web Working Group
 
Developers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLI
WP Engine
 
2022 HTML5: The future is now
2022 HTML5: The future is now
Gonzalo Cordero
 
Word Camp Fukuoka2010
Word Camp Fukuoka2010
YUKI YAMAGUCHI
 
Extending WordPress
Extending WordPress
Jonathan Bossenger
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
ananelson
 
WordPress and The Command Line
WordPress and The Command Line
Kelly Dwan
 
Presentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
Thibaut Baillet
 
Beyond the WordPress 5 minute Install
Beyond the WordPress 5 minute Install
Steve Taylor
 
WordPress
WordPress
risager
 
Theming Wordpress for Your Showcases
Theming Wordpress for Your Showcases
Jun Hu
 
WordPress Admin UI - Future Proofing Your Admin Pages
WordPress Admin UI - Future Proofing Your Admin Pages
Brandon Dove
 
Wordpress Beyond Websites
Wordpress Beyond Websites
Scott Saunders
 
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Bastian Grimm
 
Creating Your First WordPress Plugin
Creating Your First WordPress Plugin
Brad Williams
 
Introduction to blogging with Jekyll
Introduction to blogging with Jekyll
Eric Lathrop
 
Source Ordered Templates - - Joomla!Days NL 2009 #jd09nl
Source Ordered Templates - - Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development
Adam Tomat
 
WordPress Security Updated - NYC Meetup 2009
WordPress Security Updated - NYC Meetup 2009
Brad Williams
 
Developers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLI
WP Engine
 
2022 HTML5: The future is now
2022 HTML5: The future is now
Gonzalo Cordero
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
ananelson
 
WordPress and The Command Line
WordPress and The Command Line
Kelly Dwan
 
Ad

Recently uploaded (20)

Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 

Making WordPress Your CMS and Automatically Updating a Self Hosted WordPress Plugin

  • 1. MAKING WORDPRESS YOUR CMS Remind clients that you exist Provide support contact details Provide helpful hints Tell your clients what you’re doing Automatically Update Your Plugin
  • 2. CUSTOM LOGIN SCREEN •Add clients logo •Add link to your site •Move Error messages above the logo
  • 3. LOGIN LOGO <?php function my_custom_login_logo() { echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('siteurl').'/wp- content/custom-login-logo.png) !important; } .login .message { margin-top:-150px;margin-bottom: 110px;} </style>'; }
  • 4. LOGIN YOUR LINK <?php function my_custom_login_credit() { ?> <p style="position:absolute;top:428px;left:50%;margin-left: 5px;">served by <a href="http://www.yourdomain.com" title="Your Name" style="text-decoration:none;">Your Name</a></p> <?php } add_action('login_footer', 'my_custom_login_credit'); ?>
  • 5. CUSTOM LOGIN SCREEN •Add clients logo •Add link to your site
  • 6. EDITOR PERMISSIONS •Allow editors to manage menus and widgets
  • 7. EDITOR PERMISSIONS <?php // get the the role object $role_object = get_role( 'editor' ); // add capability to this role object $role_object->add_cap( 'edit_theme_options' ); ?>
  • 8. EDITOR PERMISSIONS •Allow editors to manage menus and widgets
  • 9. ‘PIMP’ THE TITLE BAR •Add your logo •Add your name and link •Add support contact details
  • 10. ‘PIMP’ THE TITLE BAR <?php add_action('admin_head', 'my_custom_logo'); function my_custom_logo() { echo '<style type="text/css"> #header-logo { background-image: url(http:// yourdomain.com/logo.gif) !important; }</style>'; }?>
  • 11. ‘PIMP’ THE TITLE BAR <?php function fs_admin_link() { ?> <span style="font:normal 14px Georgia;padding: 8px 8px 5px;margin: 0;float: left;">served by <a href="http:// www.yourdomain.com">Your Name</a> | email: <a href="mailto:[email protected]" title="Email Your Name Support">[email protected]</a> | tel: 000 0000 0000</ span> <?php } add_action('in_admin_header', 'fs_admin_link'); ?>
  • 12. ‘PIMP’ THE TITLE BAR •Add your logo •Add your name and link •Add support contact details
  • 13. ‘PIMP’ THE FOOTER •Remove unwanted links •Add your name and link
  • 14. ‘PIMP’ THE FOOTER <?php add_filter( 'admin_footer_text', 'my_admin_footer_text' ); function my_admin_footer_text( $default_text ) { return '<span id="footer-thankyou">Website managed by <a href="http://yourdomain.com">Your Name</a><span> | Powered by <a href="http:// www.wordpress.org">WordPress</a>'; } ?>
  • 15. ‘PIMP’ THE FOOTER •Remove unwanted links •Add your name and link
  • 16. DECLUTTER THE DASHBOARD •Remove confusing widgets •Add support information •Add your RSS feed
  • 17. DECLUTTER THE DASHBOARD <?php // remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // do not remove "Right Now" for administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets'); ?>
  • 18. DECLUTTER THE DASHBOARD <?php add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets'); function my_custom_dashboard_widgets() { global $wp_meta_boxes; wp_add_dashboard_widget('my_note_widget', 'Your Name Support', 'custom_dashboard_me'); } function custom_dashboard_me() { echo '<p>Welcome to your WordPress Dashboard, from here you can edit all of the content on your website.</p><p>Need help? For support please email us at <a href="mailto:[email protected]">[email protected]</a>.</p><p>You can find more information on our <a href="http://www.yourdomain.com" title="Your Title">website</a>.</p>'; } ?>
  • 19. DECLUTTER THE DASHBOARD <?php add_action('wp_dashboard_setup', 'my_dashboard_widgets'); function my_dashboard_widgets() { global $wp_meta_boxes; // add a custom dashboard widget wp_add_dashboard_widget( 'dashboard_custom_feed', 'My News', 'dashboard_custom_feed_output' ); //add new RSS feed output } function dashboard_custom_feed_output() { echo ' <div class="rss-widget">'; wp_widget_rss_output(array( 'url' => 'http://www.yourdomain.com/rss', //put your feed URL here 'title' => 'My News', 'items' => 3, //how many posts to show 'show_summary' => 1, 'show_author' => 0, 'show_date' => 1 )); echo "</div> "; } ?>
  • 20. DECLUTTER THE DASHBOARD •Remove confusing widgets •Add support information •Add your RSS feed
  • 21. RECAP •Make the login screen look pretty •Allow Editors to manage menus and widgets •Add your details and logo to the title bar •Put your name in the footer and remove confusing links •Make the dashboard less confusing and more useful •Add these codes to functions.php •Or even better, your own plugin •If you create a plugin and add it to all your client sites... •... enable automatic updates before you start!
  • 22. HOW TO - AUTO UPDATES • Visit http://w-shadow.com/blog/2010/09/02/automatic- updates-for-any-plugin/ • Update plugin header • Create metadata.json • Zip your plugin • Upload metadata.json and plugin.zip to web server
  • 24. UPDATE PLUGIN HEADER <?php require 'plugin-updates/plugin-update-checker.php'; $MyUpdateChecker = new PluginUpdateChecker( 'http://yourdomain.com/plugins/yourplugin/metadata.json', __FILE__, 'yourplugin' ); ?>
  • 25. UPLOAD ‘PLUGIN UPDATES’ •Download the file from w-shadow.com •Add the file to your plugin folder •Have a beer •This sets up the WordPress schedule •Checks every 12 hours
  • 26. CREATE METADATA.JSON { "name" : "My Plugin Name", "slug" : "myslug", "download_url" : "http://domain.com/plugins/pluginname/ pluginname.zip", "version" : "0.5", "author" : "Chris Witham", "sections" : { "description" : "Add a description here." }
  • 28. UPLOAD TO SERVER •Upload metadata.json and plugin.zip to your webserver •Manually update the plugin on client site •Ensure client site plugin is looking at your server •Wait... (now is a good time for another beer!) •... an hour later, or 12!
  • 29. UPLOAD TO SERVER •Upload metadata.json and plugin.zip to your webserver •Manually update the plugin on client site •Ensure client site plugin is looking at your server •Wait... (now is a good time for another beer!) •... an hour later, or 12!
  • 30. UPLOAD TO SERVER •Upload metadata.json and plugin.zip to your webserver •Manually update the plugin on client site •Ensure client site plugin is looking at your server •Wait... (now is a good time for another beer!) •... an hour later, or 12!
  • 32. MAKING WORDPRESS YOUR CMS + Automatically Update Your Plugin By Chris Witham For South Yorkshire WordPress October 2011

Editor's Notes