Covering All Features of Template Tags in Full Site Editing (FSE)
What are template tags?
Template tags are PHP functions used in traditional WordPress template files to display content from the database dynamically. For example, the the_author() tag prints the name of the current author. They are grouped by their "category," which is a loose mapping to the entity they refer to.
Some template tags are also compositions of a set of template tags.
How this relates to FSE.
We need to make sure that we have all the necessary blocks in place to accomplish everything possible in traditional templates using template tags. This issue aims to track our progress towards this goal and to surface areas where we lack functionality and require contributions.
Tracking Tables
Below we track all template tags alongside their block equivalent, if we need one (N/A otherwise), whether the development has started, and whether the current state of development matches or exceeds all the functionality provided by the tag.
Note that this list is just an educated guess. The idea is for everyone in the community, especially those very familiar with traditional theme development, to contribute to this list. There might be things we are missing. There might be things we could lose.
Also, note that some of these blocks could be split up into different blocks if the scope of their functionality creeps too much or people see a benefit in having more fine-grained control. For example, the Post Comments block could use a mechanism like the Query Loop block's to build a template for comments using Comment Author, Comment Date, and Comment Content blocks.
Template Tags Reference: https://codex.wordpress.org/Template_Tags
General
| Template Tag |
Block Equivalent |
Started |
Completed |
get_header() |
Template Part |
✅ |
🔲 |
get_footer() |
Template Part |
✅ |
🔲 |
get_sidebar() |
Template Part |
✅ |
🔲 |
get_template_part() |
Template Part |
✅ |
🔲 |
get_search_form() |
Search |
✅ |
🔲 |
wp_loginout() |
Authentication |
✅ |
🔲 |
wp_logout_url() |
Authentication |
🔲 |
🔲 |
wp_login_url() |
Authentication |
🔲 |
🔲 |
wp_login_form() |
Authentication |
✅ |
🔲 |
wp_lostpassword_url() |
Authentication |
🔲 |
🔲 |
wp_register() |
Authentication |
🔲 |
🔲 |
wp_meta() |
N/A |
N/A |
N/A |
bloginfo() |
N/A |
N/A |
N/A |
get_bloginfo() |
N/A |
N/A |
N/A |
get_current_blog_id() |
N/A |
N/A |
N/A |
wp_title() |
N/A |
N/A |
N/A |
single_post_title() |
Post Title |
✅ |
🔲 |
post_type_archive_title() |
Archive Title |
✅ |
🔲 |
single_cat_title() |
Query Title |
✅ |
🔲 |
single_tag_title() |
Query Title |
✅ |
🔲 |
single_term_title() |
Query Title |
✅ |
🔲 |
single_month_title() |
Query Title |
✅ |
🔲 |
get_archives_link() |
Navigation |
✅ |
🔲 |
wp_get_archives() |
Navigation |
✅ |
🔲 |
calendar_week_mod() |
Calendar |
🔲 |
🔲 |
get_calendar() |
Calendar |
🔲 |
🔲 |
delete_get_calendar_cache() |
N/A |
N/A |
N/A |
allowed_tags() |
N/A |
N/A |
N/A |
wp_ajaxurl() |
N/A |
N/A |
N/A |
wp_enqueue_script() |
N/A |
N/A |
N/A |
Author
| Template Tag |
Block Equivalent |
Started |
Completed |
the_author() |
Post Author |
✅ |
🔲 |
get_the_author() |
Post Author |
✅ |
🔲 |
the_author_link() |
Post Author |
✅ |
🔲 |
get_the_author_link() |
Post Author |
✅ |
🔲 |
the_author_meta() |
Post Author |
✅ |
🔲 |
the_author_posts() |
Post Author |
✅ |
🔲 |
the_author_posts_link() |
Post Author |
✅ |
🔲 |
wp_dropdown_users() |
Post Author |
✅ |
🔲 |
wp_list_authors() |
Post Author |
✅ |
🔲 |
get_author_posts_url() |
Post Author |
✅ |
🔲 |
Bookmark
| Template Tag |
Block Equivalent |
Started |
Completed |
wp_list_bookmarks() |
Bookmarks |
🔲 |
🔲 |
get_bookmark() |
Bookmarks |
🔲 |
🔲 |
get_bookmark_field() |
Bookmarks |
🔲 |
🔲 |
get_bookmarks() |
Bookmarks |
🔲 |
🔲 |
Category
| Template Tag |
Block Equivalent |
Started |
Completed |
category_description() |
Query Description |
✅ |
🔲 |
the_category() |
Hierarchichal Taxonomies |
✅ |
🔲 |
the_category_rss() |
N/A |
N/A |
N/A |
wp_dropdown_categories() |
Hierarchichal Taxonomies |
✅ |
🔲 |
wp_list_categories() |
Hierarchichal Taxonomies |
✅ |
🔲 |
tag_description() |
Query Description |
✅ |
🔲 |
the_tags() |
Flat Taxonomies |
🔲 |
🔲 |
wp_generate_tag_cloud() |
Flat Taxonomies |
🔲 |
🔲 |
wp_tag_cloud() |
Flat Taxonomies |
🔲 |
🔲 |
term_description() |
Query Description |
✅ |
✅ |
get_the_term_list() |
Flat Taxonomies |
🔲 |
🔲 |
the_terms() |
Flat Taxonomies |
🔲 |
🔲 |
the_taxonomies() |
Flat Taxonomies |
🔲 |
🔲 |
Comment
| Template Tag |
Block Equivalent |
Started |
Completed |
cancel_comment_reply_link() |
Post Comments Form |
✅ |
🔲 |
comment_author_email() |
Post Comments |
✅ |
🔲 |
comment_author_email_link() |
Post Comments |
✅ |
🔲 |
comment_author() |
Post Comments |
✅ |
🔲 |
comment_author_IP() |
Post Comments |
✅ |
🔲 |
comment_author_link() |
Post Comments |
✅ |
🔲 |
comment_author_rss() |
N/A |
N/A |
N/A |
comment_author_url() |
Post Comments |
✅ |
🔲 |
comment_author_url_link() |
Post Comments |
✅ |
🔲 |
comment_class() |
Post Comments |
✅ |
🔲 |
comment_date() |
Post Comments |
✅ |
🔲 |
comment_excerpt() |
Post Comments |
✅ |
🔲 |
comment_form_title() |
Post Comments Form |
✅ |
🔲 |
comment_form() |
Post Comments Form |
✅ |
🔲 |
comment_ID() |
Post Comments |
✅ |
🔲 |
comment_id_fields() |
Post Comments |
✅ |
🔲 |
comment_reply_link() |
Post Comments |
✅ |
🔲 |
comment_text() |
Post Comments |
✅ |
🔲 |
comment_text_rss() |
N/A |
N/A |
N/A |
comment_time() |
Post Comments |
✅ |
🔲 |
comment_type() |
Post Comments |
✅ |
🔲 |
comments_link() |
Post Comments Link |
✅ |
🔲 |
comments_number() |
Post Comments Count |
✅ |
🔲 |
comments_popup_link() |
Post Comments Link |
🔲 |
🔲 |
comments_popup_script() |
Post Comments Link |
🔲 |
🔲 |
comments_rss_link() |
N/A |
N/A |
N/A |
get_avatar() |
Post Comments |
✅ |
🔲 |
next_comments_link() |
Post Comments |
✅ |
🔲 |
paginate_comments_links() |
Post Comments |
✅ |
🔲 |
permalink_comments_rss() |
N/A |
N/A |
N/A |
previous_comments_link() |
Post Comments |
✅ |
🔲 |
wp_list_comments() |
Post Comments |
✅ |
🔲 |
Link
| Template Tag |
Block Equivalent |
Started |
Completed |
the_permalink() |
Link |
🔲 |
🔲 |
user_trailingslashit() |
N/A |
🔲 |
🔲 |
permalink_anchor() |
Link |
🔲 |
🔲 |
get_permalink() |
Link |
🔲 |
🔲 |
get_post_permalink() |
Link |
🔲 |
🔲 |
post_permalink() |
Link |
🔲 |
🔲 |
get_page_link() |
Link |
🔲 |
🔲 |
get_attachment_link() |
Link |
🔲 |
🔲 |
wp_shortlink_header() |
N/A |
N/A |
N/A |
wp_shortlink_wp_head() |
N/A |
N/A |
N/A |
edit_bookmark_link() |
N/A |
N/A |
N/A |
edit_comment_link() |
Post Comments |
🔲 |
🔲 |
edit_post_link() |
Link |
🔲 |
🔲 |
get_edit_post_link() |
Link |
🔲 |
🔲 |
get_delete_post_link() |
Link |
🔲 |
🔲 |
edit_tag_link() |
N/A |
N/A |
N/A |
get_admin_url() |
Link |
🔲 |
🔲 |
get_home_url() |
Link |
🔲 |
🔲 |
get_site_url() |
Link |
🔲 |
🔲 |
home_url() |
Link |
🔲 |
🔲 |
site_url() |
Link |
🔲 |
🔲 |
get_search_link() |
Link |
🔲 |
🔲 |
get_search_query() |
Search |
✅ |
🔲 |
the_feed_link() |
Link |
🔲 |
🔲 |
Post
| Template Tag |
Block Equivalent |
Started |
Completed |
body_class() |
N/A |
N/A |
N/A |
next_image_link() |
N/A |
N/A |
N/A |
next_post_link() |
Query Pagination |
✅ |
🔲 |
next_posts_link() |
Query Pagination |
✅ |
🔲 |
post_class() |
N/A |
N/A |
N/A |
post_password_required() |
N/A |
N/A |
N/A |
posts_nav_link() |
Query Pagination |
✅ |
🔲 |
previous_image_link() |
N/A |
N/A |
N/A |
previous_post_link() |
Query Pagination |
✅ |
🔲 |
previous_posts_link() |
Query Pagination |
✅ |
🔲 |
sticky_class() |
N/A |
N/A |
N/A |
the_content() |
Post Content |
✅ |
🔲 |
the_content_rss() |
N/A |
N/A |
N/A |
the_excerpt() |
Post Excerpt |
✅ |
🔲 |
the_excerpt_rss() |
N/A |
N/A |
N/A |
the_ID() |
N/A |
N/A |
N/A |
the_meta() |
Post Field |
🔲 |
🔲 |
the_title() |
Post Title |
✅ |
🔲 |
get_the_title() |
Post Title |
✅ |
🔲 |
the_title_attribute() |
N/A |
N/A |
N/A |
the_title_rss() |
N/A |
N/A |
N/A |
wp_link_pages() |
Query Pagination |
✅ |
🔲 |
get_attachment_link() |
Link |
🔲 |
🔲 |
wp_get_attachment_link() |
Link |
🔲 |
🔲 |
the_attachment_link() |
Link |
🔲 |
🔲 |
the_search_query() |
Search |
✅ |
🔲 |
is_attachment() |
N/A |
N/A |
N/A |
wp_attachment_is_image() |
N/A |
N/A |
N/A |
wp_get_attachment_image() |
N/A |
N/A |
N/A |
wp_get_attachment_image_src() |
N/A |
N/A |
N/A |
wp_get_attachment_metadata() |
N/A |
N/A |
N/A |
get_the_date() |
Post Date |
✅ |
🔲 |
the_date() |
Post Date |
✅ |
🔲 |
the_date_xml() |
Post Date |
✅ |
🔲 |
the_modified_author() |
Post Author |
✅ |
🔲 |
the_modified_date() |
Post Date |
✅ |
🔲 |
the_modified_time() |
Post Date |
✅ |
🔲 |
the_time() |
Post Date |
✅ |
🔲 |
the_shortlink() |
Link |
🔲 |
🔲 |
wp_get_shortlink() |
Link |
🔲 |
🔲 |
Post Thumbnail
| Template Tag |
Block Equivalent |
Started |
Completed |
has_post_thumbnail() |
Post Featured Image |
✅ |
🔲 |
get_post_thumbnail_id() |
Post Featured Image |
✅ |
🔲 |
the_post_thumbnail() |
Post Featured Image |
✅ |
🔲 |
get_the_post_thumbnail() |
Post Featured Image |
✅ |
🔲 |
Navigation Menu
| Template Tag |
Block Equivalent |
Started |
Completed |
wp_nav_menu() |
Navigation |
✅ |
🔲 |
walk_nav_menu_tree() |
N/A |
N/A |
N/A |