Developing WordPress Plugins

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Developing WordPress Plugins - Presentation Transcript

    1. Developing WordPress Plugins Markku Seguerra http://rebelpixel.com
    2. What is a WordPress plugin?
        • Little applications used to enhance functionality or add specific functions tailored to a site's specific needs.
    3. Some plugins: - Akismet - WordPress Database Backup - WordPress.com Stats - wp-recent-links - Comment Hilite
    4. What do you need to make a plugin? - a problem to solve - some PHP knowledge - some spare time - a test server with your test WordPress (XAMPP is good.)‏
    5. Structure: Things to remember - A unique descriptive name - Naming: myplugin.php or /myplugin/ folder - Readme.txt format for wordpress.org/extend/plugins - Plugin home page - File headers (very important!)‏
    6. Headers <?php /* Plugin Name: Name Of The Plugin Plugin URI: http://mypage.com/myplugin/ Description: What does it do? Version: 1.0 Author: Name Of The Plugin Author Author URI: http://mypage.com/ */ ?>
    7. Include your license details!
        • The GPL (and compatible licenses) is commonly used for plugins.
    8. Plugin Programming
        • Before WP 1.2, customizations required altering the core files, causing conflicts among hacks (remember my-hacks.php?) and making upgrades very tedious.
      The solution?
    9. Plugin API - Enabled &quot;hooks&quot; - Extend functionality without editing the core code - Two categories: Actions and Filters
    10. Actions Specific points in the WordPress code that can be used to trigger plugin-specified events and functions. add_action( 'hook_name', 'your_function_name', [priority], [accepted_args] );
    11. Sample action: “wp_login” function notify_on_login()‏ { // your code here // email to admin, etc... } add_action('wp_login', 'notify_on_login');
    12. Filters Functions that modify text, lists and various types of information that are used and produced by WordPress. add_filter('hook_name', 'your_filter_function', [priority], [accepted_args]);
    13. Sample filter: “the_content” function add_rss_invite()‏ { // output to screen the link to RSS feed // if 1st time visitor } add_filter('the_content', 'add_rss_invite');
    14. Template Tags Plugins can also be used to generate special template tags that display custom content. - Recent comments - Top posts - Ad display
    15. Storing Plugin Data - For large amount of data, create your own database table. - For fairly small and/or static data, use built-in WP &quot;Options&quot; capability. add_option($name, $value, $deprecated, $autoload); get_option($option); update_option($option_name, $newvalue);
    16. Administration Menus & Pages - There are specific functions to add pages and menu items. add_menu_page(page_title, menu_title, access_level/capability, file, [function]); add_submenu_page(); add_options_page(); add_management_page(); add_theme_page();
    17. Other things to consider - Internationalization - WordPress Coding Standards & inline documentation - Function prefixes to avoid name collision - When creating tables, use $wpdb->prefix - Minimize database writes. - Write secure code! (Use nonces, sanitize, etc.)‏ - Be aware of user roles and capabilities. - Stick to the WordPress API to avoid problems!
    18. Sample plugin: Strip! <?php /* Plugin Name: Strip! Plugin URI: http://rebelpixel.com/ Description: Removes hyperlink tags from a given comment. Version: 0.1 Author: Markku Seguerra Author URI: http://rebelpixel.com/projects/strip/ */
    19. /* Copyright 2008 Markku Seguerra (email : markku@gmail.com)‏ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
    20. add_filter('comment_text', 'strip_comments_add_admin'); function strip_comments_add_admin($text)‏ { // add the strip button to the comment } add_filter('comment_text', 'strip_comments_add'); add_filter('get_comment_author_link', 'strip_comments_add'); function strip_comments_add($text)‏ { // mark the comment as stripped and displays // it without links }
    21. add_action('wp_ajax_strip', 'do_strip'); function do_strip()‏ { // function to mark comment as stripped // triggered via ajax } add_action('wp_ajax_unstrip', 'do_unstrip'); function do_unstrip()‏ { // function to mark comment as stripped } function strip_selected_tags($text, $tags = array())‏ { // our filter function that removes links }
    22. add_action('admin_head', 'strip_comments_head'); function strip_comments_head()‏ { // show the necessary css and ajax // functions used in the admin interface }
    23. <script type=&quot;text/javascript&quot;> //<![CDATA[ function strip_now(cid) { jQuery.post(&quot;<?php echo get_option('siteurl'); ?>/wp-admin/admin-ajax.php&quot;, {action:&quot;strip&quot;, &quot;c&quot;:cid, &quot;cookie&quot;: encodeURIComponent(document.cookie)}, function(str) { pn = '#p-' + cid; jQuery(pn).html(str); }); } function unstrip_now(cid) { jQuery.post(&quot;<?php echo get_option('siteurl'); ?>/wp-admin/admin-ajax.php&quot;, {action:&quot;unstrip&quot;, &quot;c&quot;:cid, &quot;cookie&quot;: encodeURIComponent(document.cookie)}, function(str) { pn = '#p-' + cid; jQuery(pn).html(str); }); } //]]> </script>
    24. Thank you! Markku Seguerra http://rebelpixel.com

    + rebelpixelrebelpixel, 2 years ago

    custom

    2007 views, 4 favs, 6 embeds more stats

    A talk on developing WordPress plugins, basically a more

    More info about this document

    CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

    Go to text version

    • Total Views 2007
      • 1667 on SlideShare
      • 340 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 33
    Most viewed embeds
    • 235 views on http://wordpress.tv
    • 63 views on http://rebelpixel.com
    • 34 views on http://speckyboy.com
    • 6 views on http://jdsitecare.com
    • 1 views on http://feeds.feedburner.com

    more

    All embeds
    • 235 views on http://wordpress.tv
    • 63 views on http://rebelpixel.com
    • 34 views on http://speckyboy.com
    • 6 views on http://jdsitecare.com
    • 1 views on http://feeds.feedburner.com
    • 1 views on file://

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories