Last WordPress change log article I’ve done was propably on version 2.6.2, which has been ages and I have even take down the articles because I believe they are “not cool enough”. I always enjoyed diff’ing open source project to discover industrial standards adoptation and this is going to be my first episode since years.

WordPress has just pushed its feature 1 step further from CMS standards, website developers are going to expect a lot of candies from this minor version release.

The latest WordPress 3.1 released yesterday has couple notable features in the bag:

  • Internal Linking
  • Admin Bar
  • Streamlined Writing Interface
  • Post Format
  • Network Admin
  • List-type Admin Screens
  • Exporter/Importer Overhaul
  • Custom Content Type Improvements
  • Advanced Queries

In a Nutshell

  • WordPress uncompressed folder size has increased by 284 Kb to 8.23 Mb
  • 119 files added and 349 files modified. Within the wp-admin folder 144 files were added and 174 files modified
  • 1 additional table record added

The Full Length

This will cover only the logical changes. Texture and style changes will be overlooked. Minor code refactoring may also be ignored if the changes are for standardisation.

root

  • wp-activate.php
    • Remove the requirement of /registration.php
  • wp-atom.php, wp-comments-post.php, wp-commentsrss2.php, wp-feed.php, wp-pass.php, wp-rdf.php, wp-register.php, wp-rss.php, wp-rss2.php,
    • Force terminate script with exit() function in end of file
  • wp-links-opml.php
    • Remove checking on existence of $wp and always load /wp-load.php.
    • Fetch categories by ‘texonomy’ instead of ‘type’.
  • wp-load.php
    • Load class-wp-error.php instead of classes.php upon missing of config file.
  • wp-login.php
    • Add active hook ‘login_enqueue_scripts’.
    • Split implementation of reset_password() to check_password_reset_key().
    • register_new_user() now doesn’t not auto generate password contains special character.
    • Remove requirement of /registration.php for registration email process.
  • wp-settings.php
    • Include partial class files (class-wp.php, class-wp-error.php… etc) instead of old master /classes.php.
    • Include /admin-bar.php.
    • Load network activated plugins
  • wp-signup.php
    • Remove requirement of /registration.php.
  • xmlrpc.php
    • refactor server related functions /wp-includes/class-wp-xmlrpc-server.php.

/wp-admin

  • admin-ajax.php
    • Add new ‘fetch-list’ and ‘ajax-tag-search’ and ‘wp-link-ajax’ actions.
    • _wp_ajax_delete_comment_response() function now takes 2 arguments from 1 with addition argument $delta.
    • Remove ‘delete-link-cat’, ‘add-link’cat’, ‘add-comment’ and ‘lj-importer’ actions.
    • Performance tweak on fetching $item_ids for displaying menu items.
    • Usage _get_list_table() function for code reuse.
  • admin.php
    • Usage of exit() function to terminate execution upon negative validations.
  • edit-comment.php, edit-tag.php, edit.php
    • Modularise page view into $wp_list_table object.
    • Update most $_GET http requests with $_REQUEST http requests
  • class-wp-upgrader.php
    • Performance tweak upon bulk_upgrade() function.
  • custom-header.php
    • Add verification weather active theme supports custom header uploads
  • edit-form-advanced.php
    • Add support for different post formating
  • includes/class-wp-upgrader.php
    • Verify multi-site support for maintenance mode
  • includes/dashboard.php
    • Add network mode support
  • includes/deprecated.php
    • Add get_author_user_ids(), get_editable_authors(),  get_editable_user_ids(), get_nonauthor_user_ids() functions.
    • Add WP_User_Search class
  • includes/file.php
    • Add new file type descriptions: editor-style-rtl.css, wp-layout.css, wp-comments.php, wp-comments.popup.php
  • includes/meta-boxes.php
    • Add post_format_meta_box() function.
  • includes/misc.php
    • Tweak IIS permalinks support in iis7_save_url_rewrite_rules() function.
  • includes/ms.php
    • Remove confirm_deleted_users(),  dashboard_quota(),  admin_notice_feed(),  show_post_thumbnail_warning()  and  _admin_notice_multisite_activate_plugins_page() functions.
    • Add can_edit_network() and _thickbox_path_admin_subfolder() functions
  • includes/plugin-install.php
    • Tweak install_popular_tags() functions with usage of ‘poptags_*’ options.
    • Remove install_search(), install_featured(), install_popular(),  install_new(), install_updated(), display_plugins_table() functions.
  • includes/plugin.php
    • Add support for plugin tags.
  • includes/post.php
    • Add support for post formatings.
  • includes/schema.php
    • Update value of ‘default_post_edit_rows’ to 20 from 10.
    • Add ‘default_post_format’ with default value 0.
  • includes/taxonomy.php
    • Remove wp_delete_category() function.
  • includes/template.php
    • Remove inline_edit_term_row(), link_cat_row(),  tag_rows(),  wp_manage_posts_columns(), wp_manage_media_columns() , register_column_headers(),  inline_edit_row(), post_rows(),  display_page_row(), page_rows() and user_row() functions.
  • includes/theme-install.php
    • Remove themes_api(), install_theme_search(), install_themes_featured(), install_themes_new(), install_themes_updated(), display_themes() function.
  • includes/theme.php
    • Add support on theme tags and theme APIs.
  • includes/update.php
    • Add verification on network and multi-site supports.
    • Add wp_theme_update_rows() function.
  • includes/user.php
    • Refactor user related functions and class (WP_User_Search) to deprecated.php.
  • link-manager.php
    • Modularise page view into $wp_list_table object.
    • Update most $_GET http requests with $_REQUEST http requests
  • network.php
    • Add network mode support.
  • options-writing.php
    • Add post formating support.
  • plugin-editor.php, plugin-install.php, theme-editor.php, theme-install.php
    • Tweak for multi-site and network mode supports.
  • press-this.php
    • Add post formating support.

/wp-content

  • plugins/akismet/akismet.php
    • refactor core implementation to widget.php and admin.php files.
  • wp-content/themes/twentyten/attachment.php
    • refactor core implementation to loop-attachment.php files.
  • wp-content/themes/twentyten/page.php
    • refactor core implementation to loop-page.php files.
  • wp-content/themes/twentyten/onecolumn-page.php
    • refactor core implementation to loop-page.php files.
  • wp-content/themes/twentyten/single.php
    • refactor core implementation to loop-single.php files.
  • wp-content/plugins/akismet/admin.php
    • Add comment history in akismet_comment_row_action() function and implementation of removing history of deleted comments.
    • Add ‘test_mode’ option.
    • Add akismet_check_server_connectivity() and akismet_get_server_connectivity() functions.

/wp-include

  • capabilities.php
    • Update WP_User() function to take 2 arguments from 1 adding $blog_id.
    • Add multi-site support.
    • Add user_can() function.
  • category-template.php
    • Add wp_tag_cloud_name_sort_cb(), has_category() and has_term() functions.
    • Add Walker_Category class.
  • functions.php
    • Add wp_list_filter(), wp_list_pluck(), _doing_it_wrong(), wp_find_hierarchy_loop() and  wp_find_hierarchy_loop_tortoise_hare()  functions
  • l10n.php
    • Add translate_nooped_plural() function.
  • link-template.php
    • Add get_edit_term_link(), edit_term_link(), get_post_type_archive_link(), get_post_type_archive_feed_link(), self_admin_url(), get_dashboard_url(), get_edit_profile_url()  functions.
  • load.php
    • Add is_blog_admin(), is_network_admin() and is_user_admin() functions.
  • pluggable.php
    • Add multi-site and network supports.
  • post-template.php
    • Add Walker_Page, Walker_PageDropdown classes.
  • post.php
    • Add post formating core implementations.
  • user.php
    • Add WP_User_Query class

Database

  • New metadata record “default_post_format” added to wp_options table

Summary

This is a technical blog post covering implementation changes of latest WordPress, version 3.1 from its pervious version 3.0.5. I will line out code changes to help enthausiast PHP developer understanding the techniques and security concerns.