Genesis logo with text overlay of Genesis Hook Reference

Genesis Hook Reference: A Complete List of Hooks & Filters for the Genesis Framework

Genesis Theme Framework for WordPress

Need a complete reference of action hooks and filters found in the Genesis Framework? Here ya go.

I’m not going to add a lot of commentary to this post as it’s truly meant as a reference guide, not a tutorial. My intent is to let you know all of the locations where you can hook into Genesis as well as what content is filterable. It’s up to you to figure out what to do with these hooks, but if you want a tip of where to start, copy the hook and do a universal search in the framework files to see where it’s used. Then read the documentation. 🙂

If you’re more interested in how to use hooks to customize or create Genesis child themes, check out the resources at the bottom of this post.

Hook Reference, engage your engines. Let’s begin.

p.s. There are affiliate links in this post. Watch out, ’cause they bite! Here’s my affiliate disclaimer if you’re not sure what that’s all about.

Genesis Template Action Hooks

If you crack open the Genesis Framework files, you’ll notice that there are standard template files in the root directory. There are a variety of hooks present in these files, so for lack of a more creative term I’m going to call them “template hooks.”

Note, however, that these are not the only hooks you could use in a template. See the next section for to reference structural hooks.

Hint: To find available action hooks in any theme or plugin, search the codebase for do_action.

genesis/comments.php

  • genesis_before_comments
  • genesis_comments
  • genesis_after_comments
  • genesis_before_pings
  • genesis_pings
  • genesis_after_pings
  • genesis_before_comment_form
  • genesis_comment_form
  • genesis_after_comment_form

genesis/footer.php

  • genesis_before_footer
  • genesis_footer
  • genesis_after_footer
  • genesis_after

genesis/header.php

  • genesis_doctype
  • genesis_title
  • genesis_meta
  • genesis_before
  • genesis_before_header
  • genesis_header
  • genesis_after_header

genesis/sidebar-alt.php

  • genesis_before_sidebar_alt_widget_area
  • genesis_sidebar_alt
  • genesis_after_sidebar_alt_widget_area

genesis/sidebar.php

  • genesis_before_sidebar_widget_area
  • genesis_sidebar
  • genesis_after_sidebar_widget_area

Genesis Structural Action Hooks

The previous set of hooks are ones used specifically in Genesis’ theme template files. The following hooks are the ones found in the /lib/ folder. Most deal with front-facing content and few deal only with the WP admin area. I’ll group the latter toward the end.

genesis/lib/framework.php

  • genesis_before_content_sidebar_wrap
  • genesis_before_content
  • genesis_before_loop
  • genesis_loop
  • genesis_after_loop
  • genesis_after_content
  • genesis_after_content_sidebar_wrap

genesis/lib/init.php

  • genesis_pre
  • genesis_pre_framework
  • genesis_init
  • genesis_setup

genesis/lib/structure/archive.php

  • genesis_archive_title_descriptions

genesis/lib/structure/comments.php

  • genesis_list_comments
  • genesis_list_pings
  • genesis_before_comment
  • genesis_after_comment

genesis/lib/structure/header.php

  • genesis_site_title
  • genesis_site_description
  • genesis_header_right

genesis/lib/structure/loops.php

Note that I’m only including HTML5 hooks added in Genesis 2.0+. The old XHTML hooks should be thrown down the garbage disposal.

  • genesis_before_while
  • genesis_before_entry
  • genesis_entry_header
  • genesis_before_entry_content
  • genesis_entry_content
  • genesis_after_entry_content
  • genesis_entry_footer
  • genesis_after_entry
  • genesis_after_endwhile
  • genesis_loop_else
  • genesis_before_post
  • genesis_before_post_title
  • genesis_post_title
  • genesis_after_post_title
  • genesis_before_post_content
  • genesis_post_content
  • genesis_after_post_content
  • genesis_after_post
  • genesis_after_endwhile
  • genesis_loop_else

genesis/lib/structure/post.php

  • genesis_reset_loops

genesis/lib/structure/menu.php

  • genesis_register_nav_menus

genesis/lib/admin/menu.php

  • genesis_admin_menu

genesis/lib/classes/admin.php

  • genesis_admin_init

Still with me?

Genesis Filter Hooks

Most of the time when developers talk about hooks, they’re talking specifically about action hooks. But hooks come in two flavors: actions and filters. And guess what? Filters have feelings, too, so that’s why I’m including a filter reference.

Hint: To search for what filter hooks are available in any theme or plugin, search the codebase for apply_filters.

/genesis/404.php

  • genesis_404_entry_title
  • genesis_404_entry_content

/genesis/lib/admin/cpt-archive-settings.php

  • genesis_cpt_archive_settings_page_label
  • genesis_cpt_archive_settings_menu_label
  • genesis_cpt_archive_settings_capability_ . $this->post_type->name
  • genesis_cpt_archive_settings_label

/genesis/lib/admin/import-export.php

  • genesis_export_options

/genesis/lib/admin/term-meta.php

  • genesis_term_meta_defaults
  • genesis_term_meta
  • genesis_term_meta_{$meta_key}

/genesis/lib/admin/user-meta.php

  • genesis_user_meta_defaults

/genesis/lib/classes/breadcrumb.php

  • genesis_breadcrumb_args
  • genesis_build_crumbs
  • genesis_archive_crumb
  • genesis_single_crumb
  • genesis_home_crumb
  • genesis_blog_crumb
  • genesis_search_crumb
  • genesis_404_crumb
  • genesis_page_crumb
  • genesis_attachment_crumb
  • genesis_post_crumb
  • genesis_cpt_crumb
  • genesis_category_crumb
  • genesis_tag_crumb
  • genesis_tax_crumb
  • genesis_year_crumb
  • genesis_month_crumb
  • genesis_day_crumb
  • genesis_author_crumb
  • genesis_post_type_crumb
  • genesis_breadcrumb_link

/genesis/lib/classes/class-genesis-script-loader.php

  • genesis_superfish_args_url
  • genesis_toggles

/genesis/lib/classes/sanitization.php

  • genesis_available_sanitizer_filters

/genesis/lib/functions/formatting.php

  • get_the_content_limit_allowedtags
  • get_the_content_more_link
  • get_the_content_limit
  • the_content_limit

/genesis/lib/functions/general.php

  • genesis_sitemap_output
  • genesis_canonical_url

/genesis/lib/functions/head.php

  • genesis_get_seo_meta_description
  • genesis_get_seo_meta_keywords
  • genesis_get_robots_meta_content
  • genesis_pre_load_favicon
  • genesis_favicon_url

/genesis/lib/functions/image.php

  • genesis_get_image_default_args
  • genesis_pre_get_image
  • genesis_get_image

/genesis/lib/functions/layout.php

  • genesis_initial_layouts
  • genesis_get_layouts
  • genesis_site_layout
  • genesis_structural_wrap-{$context}

/genesis/lib/functions/markup.php

  • genesis_markup_{$args[‘context’]}
  • genesis_markup_{$args[‘context’]}_output
  • genesis_markup_{$args[‘context’]}_open
  • genesis_markup_{$args[‘context’]}_close
  • genesis_markup_open
  • genesis_markup_close
  • genesis_attr_{$context}
  • genesis_attr_{$context}_output

/genesis/lib/functions/menu.php

  • genesis_superfish_enabled

/genesis/lib/functions/options.php

  • genesis_pre_get_option_{$key}
  • genesis_options

/genesis/lib/functions/widgetize.php

  • genesis_register_sidebar_defaults
  • genesis_register_widget_area_defaults
  • genesis_widget_area_defaults
  • genesis_sidebar_title_output

/genesis/lib/init.php

  • genesis_theme_support_menus
  • genesis_theme_support_structural_wraps
  • genesis_settings_field
  • genesis_seo_settings_field
  • genesis_cpt_archive_settings_field_prefix

/genesis/lib/shortcodes/footer.php

  • genesis_footer_backtotop_shortcode
  • genesis_footer_copyright_shortcode
  • genesis_footer_childtheme_link_shortcode
  • genesis_footer_genesis_link_shortcode
  • genesis_footer_studiopress_link_shortcode
  • genesis_footer_wordpress_link_shortcode
  • genesis_footer_site_title_shortcode
  • genesis_footer_home_link_shortcode
  • genesis_footer_loginout_shortcode

/genesis/lib/shortcodes/post.php

  • genesis_post_date_shortcode
  • genesis_post_time_shortcode
  • genesis_post_modified_date_shortcode
  • genesis_post_modified_time_shortcode
  • genesis_post_author_shortcode
  • genesis_post_author_link_shortcode
  • genesis_post_author_posts_link_shortcode
  • genesis_post_comments_shortcode
  • genesis_post_tags_shortcode
  • genesis_post_categories_shortcode
  • genesis_post_terms_shortcode
  • genesis_edit_post_link
  • genesis_post_edit_shortcode

/genesis/lib/structure/archive.php

  • genesis_term_intro_text_output
  • genesis_author_intro_text_output
  • genesis_cpt_archive_intro_text_output

/genesis/lib/structure/comments.php

  • genesis_title_comments
  • genesis_prev_comments_link_text
  • genesis_next_comments_link_text
  • genesis_no_comments_text
  • genesis_comments_closed_text
  • genesis_title_pings
  • genesis_no_pings_text
  • genesis_comment_list_args
  • genesis_ping_list_args
  • comment_author_says_text
  • genesis_comment_awaiting_moderation
  • genesis_show_comment_date
  • genesis_comment_awaiting_moderation
  • genesis_comment_form_args

/genesis/lib/structure/footer.php

  • genesis_footer_widget_areas
  • genesis_footer_backtotop_text
  • genesis_footer_creds_text
  • genesis_footer_output
  • genesis_footer_scripts

/genesis/lib/structure/header.php

  • genesis_viewport_value
  • genesis_canonical
  • genesis_header_scripts
  • genesis_site_title_wrap
  • genesis_seo_title
  • genesis_site_description_wrap
  • genesis_seo_description
  • genesis_skip_links_output

/genesis/lib/structure/loops.php

  • genesis_custom_loop_args
  • genesis_grid_loop_post_class

/genesis/lib/structure/post.php

  • genesis_post_title_text
  • genesis_link_post_title
  • genesis_entry_title_wrap
  • genesis_post_title_output
  • genesis_post_info
  • genesis_edit_post_link
  • genesis_post_permalink
  • genesis_noposts_text
  • genesis_post_meta
  • genesis_author_box_gravatar_size
  • genesis_author_box_title
  • genesis_author_box
  • genesis_prev_link_text
  • genesis_next_link_text

/genesis/lib/structure/search.php

  • genesis_search_text
  • genesis_search_button_text
  • genesis_search_form_label
  • genesis_search_form

/genesis/lib/widgets/featured-page-widget.php

  • genesis_featured_page_title

/genesis/lib/widgets/featured-post-widget.php

  • genesis_featured_post_title

/genesis/lib/widgets/user-profile-widget.php

  • genesis_gravatar_sizes

/genesis/search.php

  • genesis_search_title_text
  • genesis_search_title_output

Additional Resources on using Genesis Hooks

20 thoughts on “Genesis Hook Reference: A Complete List of Hooks & Filters for the Genesis Framework”

  1. Such a compilation!

    Thank you Carrie for this information, all ordered and in one place 🙂

    Perfect for the Genesis framework lovers as I am 🙂

  2. Hi Carrie,

    I am trying to apply my custom class to the of genesis nav items .

    Default am getting this -> “menu genesis-nav-menu menu-primary js-superfish sf-js-enabled sf-arrows”

    What I want -> “my-custom-class”.

    How to achieve this !

  3. Hi Carrie,

    Love your work, also looked at your lessons on Lynda!

    I have not been able to figure out for few days, how to add additional classes to element in Genesis posts loop.

    I was really hoping you would be able to help me figure this out.

    Faithfully,
    Scott

Leave a Comment

Your email address will not be published. Required fields are marked *

Carrie Dils uses Accessibility Checker to monitor our website's accessibility.