Strawberry Custom Fields Forever - WordPress Metadata and Custom Fields

1,329 views
1,179 views

Published on

Learn how to leverage the power of WordPress custom meta boxes and fields to better organize your site, make it easier to update content, and manage your data more efficiently. We’ll cover how to set everything up in code using native WordPress functions, plugins that will speed up the process, as well as ways to display all the data on your website. We’ll also touch on the new Metadata API being developed as a feature plugin in WordPress Core to see what’s coming in the future.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,329
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Strawberry Custom Fields Forever - WordPress Metadata and Custom Fields

  1. 1. Strawberry Custom Fields Forever ! Matt Banks ! @mattbanks
  2. 2. photo credit: Sheri Bigelow, @designsimply talk title credit: Damon Cook, @dcook
  3. 3. What are Custom Fields and Meta boxes? • Custom Fields allow you to attach additional information (metadata) to a post, page, custom post type, etc • http://codex.wordpress.org/Custom_Fields • Meta boxes are for separating and grouping your Custom Fields into logical panels in the post/page editor screen
  4. 4. Custom Fields
  5. 5. Meta boxes
  6. 6. Adding Custom Fields and Meta boxes using Core functions Add the Meta Box add_meta_box(
 $id,
 $title,
 $callback,
 $post_type,
 $context,
 $priority,
 $callback_args
 );
  7. 7. Adding Custom Fields and Meta boxes using Core functions Create a Nonce and render the Meta Box via callback function wp_nonce_field(
 'myplugin_meta_box',
 'myplugin_meta_box_nonce'
 );
  8. 8. Adding Custom Fields and Meta boxes using Core functions Verify the nonce, sanitize the data and update the Post Meta sanitize_text_field(
 $_POST['myplugin_new_field']
 ); update_post_meta(
 $post_id,
 '_my_meta_value_key',
 $my_data
 );
  9. 9. Displaying Custom Field data in your Theme get_post_meta(
 $post_id,
 $key,
 $single
 ); $key_1_value = get_post_meta( get_the_ID(), 'key_1', true ); http://codex.wordpress.org/Function_Reference/ get_post_meta
  10. 10. Playing Nice with the
 New REST API • Protected meta (prefixed with _) needs authorization to be accessed by the API. Gets hooked to ‘init’ or ‘plugins_loaded’ ! register_meta( $meta_type, $meta_key, $sanitize_callback,
 $auth_callback = null ); ! register_meta( 'post', '_my_meta_key', '', '__return_true' );
  11. 11. Adding Custom Fields and Meta boxes using Core functions Demo
  12. 12. Adding Custom Fields and Meta boxes using Core functions Full code examples in Codex: http://codex.wordpress.org/Function_Reference/ add_meta_box#Procedural
 http://codex.wordpress.org/Function_Reference/ add_meta_box#Class
  13. 13. Is there something easier? Yes! photo credit: Sheri Bigelow
  14. 14. With a Little Help From My Friends ! Plugins to create Custom Fields and Meta boxes • Advanced Custom Fields (ACF) • Custom Field Suite (CFS) • Pods • Custom Metaboxes and Fields
  15. 15. Advanced Custom Fields (ACF) http://www.advancedcustomfields.com/
  16. 16. Advanced Custom Fields (ACF) • Output data into your theme using:
 
 the_field( 'your_field_name' );
  17. 17. Advanced Custom Fields (ACF) • Multiple field types • Easy to use • Premium add-ons (changing in version 5)
  18. 18. Custom Field Suite (CFS) https://uproot.us
  19. 19. Custom Field Suite (CFS) • Output data into your theme using: ! $cfs->get( $field_name, $post_id, $options );
  20. 20. Custom Field Suite (CFS) • Includes loop field types in free version • Easy to use • Great documentation
  21. 21. Custom Field Suite (CFS) Demo
  22. 22. Pods http://pods.io
  23. 23. Pods • Output data multiple ways into your theme: ! pods_field_display( $pod, $id, $name, $single); ! pods_image( $image, $size, $default, $attributes, $force ); • Custom Pods loops, templates, pages
  24. 24. Pods • Extremely powerful! • Creates Custom Post Types and Taxonomies as well as Custom Fields • Able to extend Users, Comments, etc • More complex than other plugins/solutions • No loop fields (coming in v3.0) • No meta box management (coming in v3.0)
  25. 25. Custom Metaboxes and Fields https://github.com/WebDevStudios/Custom- Metaboxes-and-Fields-for-WordPress
  26. 26. Custom Metaboxes and Fields • Framework to create meta boxes and fields in code • Can be embedded in custom plugins • Uses native WordPress functions for display get_post_meta( $post_id, $key, $single );
  27. 27. Custom Metaboxes and Fields • Extensive list of available post types • Active development • Extendible
  28. 28. Custom Metaboxes and Fields Demo
  29. 29. So, what’s the best choice?
  30. 30. Well, it Depends… • Plugins like ACF, CFS and Pods are the easiest solution for adding data for most sites • Custom Metaboxes and Fields and Core functions are better for custom plugins, building web apps with WordPress
  31. 31. Can we help Core?
  32. 32. Metadata UI API Being built as a Feature Plugin
  33. 33. Metadata UI API • A work in progress • API to add fields and forms (meta boxes) to posts, pages, custom post types. In the future, plans to add forms and fields to options, users, comments, taxonomy terms, media, etc. • Any plugin using forms will be able to interface with the API to display them, both on the back-end and public forms • Make Core easier for creating custom fields and meta boxes for developers
  34. 34. Metadata UI API Example Register new Form (meta box). User, Option Group, Comment Forms planned for later. ! register_post_form( $form_name, $post_type, $form_args );
  35. 35. Metadata UI API Example Add Fields to Post Type. Fields can be inside a Form (meta box) or in the editor at any point. ! register_post_field( $field_name, $post_type, $field_args );
  36. 36. Metadata UI API • UI/UX in progress for displaying custom fields and meta boxes on post type edit screens • Plugin authors will be able to extend field types, HTML templates, form types, etc.
  37. 37. Come Together • You can help! • Follow along with the development on Github
 
 https://github.com/wordpress-metadata/ metadata-ui-api • Weekly meetings on IRC in
 #wordpress-core-plugins Friday’s at 2pm ET
  38. 38. Hello, Goodbye ! Thank You! If you have any questions, let me know! ! matt@collectivthkg.com ! Twitter: @mattbanks ! Skype: mattbanks-14 ! ! https://github.com/mattbanks/strawberry-custom-fields-forever

×