Skip to content

Latest commit

History

History
70 lines (47 loc) 路 1.85 KB

WordPress-hooks.md

File metadata and controls

70 lines (47 loc) 路 1.85 KB

When to hook in WordPress?

See https://codex.wordpress.org/Plugin_API/Action_Reference

馃挕 Always hook the latest possible action.

Earliest time to use add_filter and add_action

  • Not when plugin's main file or the themes's functions.php file is being loaded!
  • Plugins at plugins_loaded
  • Theme's functions.php file is loaded just before after_setup_theme
  • Generally at init
add_action('plugins_loaded', 'myprefix_add_hooks', 10, 0);

Unconditional hooking

  • register_activation_hook()
  • register_post_type()

Based on HTTP request type

馃挕 Anonymous visitors include ones with JS disabled, robots, attackers and pull CDN.

Conditional Tags

See https://codex.wordpress.org/Conditional_Tags

  • Post type is_singular($cpt)
  • Page template
  • Archives

On admin pages

馃挕 is_admin() includes wp_doing_ajax()!

In development

  • Based on WP_DEBUG
  • Based on environment name from WP_ENV

HTTP Request variables

GET and POST variables.

馃挕 Best to avoid direct request variable access.

Login requests

  • register GET, POST
  • login GET, POST
  • logout GET
  • lostpassword (was retrievepassword) GET, POST
  • rp GET, resetpass POST
  • confirm_admin_email GET every six months after an admin has logged in
  • postpass POST password protected posts
  • confirmaction GET multisite account activation
  • WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED GET, POST?