Table of Contents
Preface
Chapter 1: Preparing for WordPress Development
Chapter 2: Social Bookmarking
Chapter 3: Live Blogroll
Chapter 4: The Wall
Chapter 5: Snazzy Archives
Chapter 6: Insights for WordPress
Chapter 7: Post Types
Chapter 8: Development Goodies
Index
- Chapter 1: Preparing for WordPress Development
- How will you benefit?
- WordPress features
- More sites means more opportunities
- Big players use it
- Urgent response to security issues
- Flexibility
- Search engines friendly
- Easy to use
- Social aspect
- Plugins as tool for promotion
- Dogfooding WordPress plugins
- WordPress features
- Challenges involved
- Development
- Security
- Work after development
- Localization
- Documentation
- Support
- Promotion
- Plugins developed in this book
- Digg This
- Live Blogroll
- The Wall
- Snazzy Archives
- Insights
- Post Types
- Development Goodies
- Tools for the job
- WordPress
- Text editor
- FTP client
- Web browser
- Firebug
- Ubiquity
- Screengrab
- IE tab
- Final notes
- Installing and managing plugins
- Searching documentation
- Summary
- How will you benefit?
- Chapter 2: Social Bookmarking
- Plugging in your first plugin
- Time for action – Create your first plugin
- The plugin information header
- Checking WordPress versions
- Checking the plugin
- Time for Action – Testing the version check
- Plugging in your first plugin
- Displaying a Digg button
- Time for Action – Implement a Digg link
- Using the Digg API
- Acquiring post information
- Post permalink URL
- Editing the theme files
- WordPress plugin hooks
- Time for Action – Use a filter hook
- WordPress hooks
- Filter hooks
- Action hooks
- Practical filters and actions examples
- Adding a Digg button using JavaScript code
- Time for Action – Implement a Digg button
- Conditional Tags
- Styling the output
- Time for Action – Use CSS to position the button
- Summary
- Chapter 3: Live Blogroll
- Starting up with the blogroll
- Time for action – Roll into the blogroll
- RSS Feed Processing
- Starting up with the blogroll
- jQuery JavaScript library
- Implementing a mouse hover event in jQuery
- Time for action – Creating a hover event with jQuery
- JavaScript and WordPress
- Initializing jQuery
- Expanding jQuery knowledge
- Creating the pop-up with CSS
- Time for action – Apply CSS to the popup
- Implementing a mouse hover event in jQuery
- Demystifying Ajax
- Simple example of using Ajax
- Time for action – Use Ajax to dynamically retrieve feed posts
- Using JavaScript with WordPress
- Parsing parameters using wp_localize_script
- Ajax and WordPress
- Ajax in admin panel
- jQuery.ajax method
- Time for action – Use advanced Ajax call
- Ajax script security using nonces
- Time for action – Add a security nonce
- Simple example of using Ajax
- Summary
- Chapter 4: The Wall
- The main concepts behind the Wall plugin
- Creating a widget
- Time for action – Create a 'Hello World!' widget
- Register widgets with description
- Widget controls
- Time for action – Expanding the widget with controls
- WordPress options
- Display widget control
- Handling widget input
- Handling widget output
- Create a WordPress page from the code
- Time for action – Insert a page
- Handling user input
- Time for action – Create the wall comment form
- Managing Ajax comment submit
- Time for action – Save the comments
- Using Ajax to submit forms
- Saving comments in WordPress post
- Dynamically load comments
- Time for action – Display the comments
- WordPress database query
- Comment output
- Displaying the comments
- Ajax security
- Time for action – Display the comments
- Summary
- Chapter 5: Snazzy Archives
- Using a class for plugin
- Time for action – Create a new plugin class
- Using a class for plugin
- Showing template output with shortcodes
- Time for action – Use a shortcode
- Shortcode API
- Enclosing shortcodes
- Custom templates
- Time for action – Create a custom template
- Prepare archives
- Time for action – Show archives of posts
- Get all posts from database
- Using a regular expression
- Retrieve comment count for a post
- Using output buffers
- Apply styling and jQuery to archives
- Time for action – Style the archive view
- Time for action – Use jQuery to allow user interaction
- Creating plugin options page
- Time for action – Create an options page
- Managing plugin options
- Handling options form
- Adding administration pages
- Use plugin options
- Time for action – Apply the plugin options
- Caching the plugin output
- Time for action – Create archives cache
- Summary
- Chapter 6: Insights for WordPress
- Creating custom panels in the editor screen
- Time for action – Create a new plugin outline
- Custom edit panels in WordPress
- Creating custom panels in the editor screen
- Searching the posts
- Time for action – Display a list of matching posts
- Interacting with tinyMCE
- Time for action – Insert the link into tinyMCE
- Using Flickr API
- Time for action – Display Flickr photos
- Using third-party solutions—phpFlickr
- Creating a tinyMCE plugin
- Time for action – Adding a button to tinyMCE
- Create a functional tinyMCE plugin window
- Time for action – Open a tinyMCE window
- Summary
- Chapter 7: Post Types
- Handling localization
- Time for action – Create plugin and add localization
- Optimizing localization usage
- How does localization work?
- Handling localization
- Adding a post template
- Time for action – Create 'add photo' post template
- Backend CSS classes
- Handling file and image uploads
- Time for action – Handle uploaded image
- Using custom fields
- Adding custom fields
- Retrieving custom fields
- Quick post a link
- Time for action – Add link template
- Tinkering with WordPress backend menus
- Time for action - Remove 'Link' from the Write page
- Programming the Manage panel
- Time for action – Add post type column in the Manage panel
- Modifying an existing column
- Manage screen search filter
- Time for action – Add a search filter box
- Handling error messages
- Time for action – Adding support for errors
- User roles and capabilities
- Time for action – Add user capability checks
- Summary
- Chapter 8: Development Goodies
- Creating Localization files
- Time for action - Create a POT file
- Updating POT file
- Time for action – Perform translation
- Updating translation
- Creating Localization files
- Documentation and support
- Plugin readme file
- Time for action – Create a sample plugin readme.txt file
- Sections of readme.txt
- General information
- Special codes
- Screenshots
- Installation instructions
- Plugin homepage
- Providing support
- Plugin readme file
- Code management and plugin repository
- Requesting repository access
- Using SVN
- Time for action - Manage a local repository using SVN
- Tagging a new version
- Using WordPress development SVN
- Local copy of plugin repository
- Promotion
- Plugin promotion checklist
- General plugin development guidelines
- Security
- Performance
- Re-using resources
- Keeping API up-to-date
- WordPress MU development
- WordPress and GPL
- Online resources
- WordPress documentation (WordPress Codex)
- WordPress development news
- WordPress blog
- WordPress development updates
- WordPress Trac
- WordPress dev IRC channel
- Debugging and testing
- Unit testing
- Automated tests
- Mailing Lists
- WP hackers
- WP professionals
- Other mailing lists
- Podcasts
- WordCast
- WordPress Weekly
- Author's (Vladimir Prelovac's) web site
- Summary


