Custom Fields is an important and useful feature in WordPress and bring us a very high customization ability. So, let’s find out the basics, relevant techniques, and excellent applications of Custom Fields in this series.
If you’ve already reached WordPress, you also heard that it is a top platform for quickly building blogs. Furthermore, its partial actual power is Custom Fields, which took part in the WordPress’ strong development and taking up leading position in CMS over previous 15 years.
Currently, WordPress is the most popular CMS in the world that powers around 30% of websites. It is the statistic on public sites only. There is also a large number of invisible sites such as deep web or private sites which no one knows for sure. We merely know that number of such sites is much larger than the public.
It’s not to say that WordPress is born with a destined destiny to lead the world. It’s the result of its long-term growth history with features are able to satisfy lots of users, over 45,000 plugins, and about 6,000 themes published officially on wordpress.org.
Why can WordPress be able to meet the various different needs from news sites, portfolio sites, and hotel reservations sites to e-commerce sites of such a large number of users? What are the secrets? One of the answers is Custom Fields and the metadata architecture behind.
First of all, let’s inquire basically how data is organized in WordPress and why metadata is so important.
We could interpret Metadata as arbitrary data (meta) attached to the (primary) data providing more information and clarifying that (primary) data. The primary data does not contain this meta itself.
There are main types of object in WordPress are Post, User, Comment, Taxonomy, and Media. They hold only essential fields provided by WordPress to describe them. E.g. Title for Product or Post, user_name for User, and Name for Category. In the database, these all things are expressed in correspondent tables with columns (tables for objects and columns for fields).
However, what if you want to depict the object Post as a Product? So you need additional information on price, quantity, and color for instance. So that, instead of adding columns to the table ordinarily, the data of additional information will be saved into metadata, then linked to Post. Post becomes Product from now on.
It means that Post is Post only without metadata. In contrast, Post could become Product when you use metadata. Then, if you do not want it to be Product anymore, you may associate it with fields for Room as price and space, so Post becomes Room without changing the fundamental data of Post. That highly interested flexibility is the foundation for the power of WordPress’ growth.
Now, we come back to Custom Fields.
In WordPress, to allow users to add, delete, or edit metadata data, there must be a tool for manipulating them. That is the custom fields!
So, the principal question here is what custom fields is?
Custom fields is a feature that helps us create forms and fields to interact with metadata.
Here is a screenshot of how custom fields is implemented in WordPress.
If there is no user interface (UI) of the custom fields as above, the only way to add, remove, or edit metadata is using the code through the functions provided by WordPress. For WordPress beginners, this is quite difficult. A UI will help them manipulate the data more visually and conveniently.
In fact, the concept of metadata is rarely mentioned because it is a technical term hidden under custom fields in WordPress. And when it comes to custom fields, it’s generally understood that it includes both the user interface and the metadata. In this series, we also agree on that and use it for both.
Sorts of custom fields and metadata
As mentioned above, custom fields create form fields so that user can add metadata that they need. So which objects will this data be added?
In the metadata section, we said that the main types of objects are Post, User, Comment, Taxonomy, and Media. All of these objects may have own custom fields, so we have corresponding custom fields and metadata also for Post, for User, and so on. You also can see custom fields when you edit them.
Here is a screenshot of the custom fields for posts:
Here is a screenshot for custom fields for categories:
Common types of custom fields
As you can see in the screenshot above, there are many types of data need to add to each object usually. It can be a short text, an image, or a URL.
In the process of carrying out the content, users often encounter the following field types:
- Text field (e.g. name, address)
- Image field (e.g. profile image, icon)
- File upload field: PDF file download, invoice download
- Editor field: brief description, intro text
- Relationship field: field links to another object types
- Repeater field: field can be repeated
- URL field: website, social media profile
- Choice field: select an option from a predefined list
- And many more
To add such custom fields to WordPress, we have following three options:
- Use default feature of WordPress
- Use the functions of WordPress
- Use plugins
For some simple fields such as text, the WordPress default functions are sufficient to use. Nevertheless, if you want to use more complex fields, you must manually code it. It’s not too hard for fields like image and editor, but it’s complicated for fields like repeater or relationship fields.
Applications of custom field
You definitely can create websites in different industries with custom fields. For example:
- Travel: add descriptive fields for Address, Rating, Price, Tour guide.
- Hotel: add fields such as Price, Availability, Capacity, Facilities.
- E-commerce: fields about Price, Volume, Quantity.
In WordPress, we can say that wherever custom post types are, there custom fields are!
Metadata and custom fields have provided WordPress a powerful capability of customization to meet the needs of nearly 30% website in the world, in all industries. When you are working with WordPress, you either only build a trivial blog or cannot ignore Custom Fields.
On the other hand, custom fields are also a cause of many disputes. Some people say it makes query slower, and some say it is not suitable to scale. So that to know the truth, there is no other way than to learn more about WordPress’ building and querying data from custom fields’ database. Please be patient, we will learn all about them step by step in this series, in later articles.
Also published on Medium.