Featured Content, 10/4 Update

I finally put a bunch of work into the coding of the plugin, and I think it is fairly robust at this point. Whether it makes it into core ( or whether it even should) is up for discussion, but I would like to share what I have.

First, check out the latest code in trunk here: http://plugins.svn.wordpress.org/wp-featured-content/trunk/

To guide development, I made the following list of requirements. It should also be easier for people to follow along when we can all agree on an initial set of facts:

UI

Wherever possible, existing WP functionality and screens will be used. The user should be able to associate posts with Featured Content theme areas as easy as selecting a category or making a post sticky, but, to be more robust, the user should be able to override certain features of a post when it is displayed as a Featured Item in a theme. Example: different title when featured vs what is displayed for a the full post, different image when in a featured module vs the featured image for the post when displayed in single.php.

Post Type / Taxonomy

  1. A Featured Item uses the featured_item post type
  2. A featured_item belongs to a Featured Area
  3. Each Featured Area is a term in the featured_area taxonomy
  4. Post types can opt in to featured content by adding featured_area taxonomy support
  5. Themes can opt-in by supporting  ‘featured-content’  (the plugin currently brute-forces it)

Creating / Deleting

  1. Add a post with featured area(s), make sure featured item(s) are created
  2. Trash the post, delete permanently, make sure featured item(s) are deleted
  3. Featured item should not have a title when created, it should inherit from the parent post when empty – view in list tables to verify
  4. If a featured item’s title is edited, it should show that in the list table, unless it is empty
  5. Add a post with a featured area, item is created. Edit post to belong to a featured area, 2nd featured item should be created.
  6. Delete one of the featured items, the other should remain, the post should be linked to only one featured area.

Transitioning Post Status

  1. Add a post in draft status, make sure featured item is in draft status
  2. Move a post in draft to publish, make sure featured item is moved as well
  3. If a post was created with 2 featured items and one is trashed: if the term is re-linked to the post, the item in the trash should be untrashed, instead of creating a 3rd item

Trash / Untrash

  1. Trash a post, make sure the featured item(s) are deleted
  2. Untrash a post, make sure the featured item(s) are not created
  3. Trash an existing featured item, make sure post loses tax association
  4. Untrash an existing featured item, make sure post regains tax association
  5. Permanently delete existing featured item, make sure post loses tax association

Quick Edit

  1. The Taxonomy box for featured items should be present in Quick Edit
  2. All saving logic should fire in AJAX save routine for Quick Edit

Sorting/Re-ordering

  1. All featured items should be re-orderable via the Re-order items screen
  2. menu_order should be set when items are reordered, only those that change should be sent
  3. When new items are added to a featured area, they should be appended to the end of the list, not the beginning

Returning Data

  1. By default, featured item contains the post data of the post it belongs to
  2. If any fields have been overridden(post_title, post_excerpt), the post data is a merge of the 2
  3. If the featured item has a featured image, the theme can override by using the property ‘image_id’ to grab the featured image on one of the decorated $posts that is returned when applicable

Yeah, so that is a mouthful. All of these use-cases are listed in the comments at the top of the plugin file as well. There’s been a lot of discussion about new UI. If someone wants to think way outside of the box and introduce new screens, keep the above in mind.