SlideShare a Scribd company logo
WordPress Hooks
Scott Cariss • @l3rady • Big Fish Ltd
What I'm going to cover
The WordPress page lifecycle.
What are hooks and how do they fit into the page lifecycle?
Why use hooks?
What are actions
What are filters
Examples
The WP page lifecycle
"A page life cycle is nothing more than a combination of the
events that take place from when a browser requests a
page to when the server returns the page to the browser."
Lets look at loading a single page in WP
- Look at the requested page ID
- Query the database
- Get associated data (Categories, tags, images, etc)
- Return all of the data to the browser
The WP page lifecycle
The template files and the calls to the API
functions are then responsible for rendering,
styling and position the data on the screen
Sounds simple but this is just a simple page
load. Think of more complex sites WP sites you
have been on.
You can now understand how intensive this
particular process can be.
WordPress hooks - WPLDN July 2013 Meetup
The WP page lifecycle
"While WordPress is running its series of queries and
preparing to render data back to the browser, it’s looking at
all of the custom hooks – that is, the actions and filters –
that have been written and is passing data through those
filters before returning data to the browser."
At this point it's important to define what hooks
are and look at the difference between action
and filter hooks and how they play into this
whole lifecycle
What are hooks and why use them?
They are the backbone of WordPress.
They enable developers to "hook" into the WP
lifecycle to change how it works without
modifying the core code.
Developers hook code is separate from WP
core so that WP updates don't remove or
destroy the developers code.
Different functions for hooks
Action Hooks
- do_action()
- add_action()
- remove_action()
- has_action()
- do_action_ref_array()
- did_action()
- remove_all_actions()
Filter Hooks
- apply_filters()
- add_filters()
- remove_filters()
- has_filter()
- current_filter()
- merge_filters()
- remove_all_filters()
Using action hooks
do_action( 'hook_name', $arg1, $arg2, ... );
add_action( 'hook_name',
'your_function_name', [priority],
[number_args_accepted] );
remove_action( 'hook_name',
'function_to_remove', [priority],
[number_args_accepted] );
Using filter hooks
$value = apply_filters( 'hook_name', $value,
$value2, ... );
add_filter( 'hook_name',
'your_filter_function', [priority],
[number_args_accepted] );
remove_filter( 'hook_name',
'filter_function_to_remove', [priority],
[number_args_accepted] );
Examples
Changing the excerpt length on the home page:
function wpldn_excerpt( $length ) {
if ( is_home() ) {
return 20;
}
return $length;
}
add_filter( 'excerpt_length', 'wpldn_excerpt', 999 );
Examples
Adding Google Maps JS to contact us page
function wpldn_maps_js() {
if ( !is_page( 'contact-us' ) ) {
return;
}
wp_enqueue_scripts( 'google_maps_api',
'[PATH_TO_GOOGLE_MAP_API]', array(), false, true
);
wp_enqueue_scripts( 'my_map_js', '[PATH_TO_YOUR_JS]',
array( 'google_maps_api' ), false, true );
}
add_action( 'wp_enqueue_scripts', 'wpldn_maps_js' );
Examples
Load a different theme template file at will
function wpldn_any_file() {
if( !is_page( "about-us" ) ) {
return;
}
include( '/path/to/any/file.extension' );
exit();
}
add_action( 'template_redirect', 'wpldn_any_file' );
Examples
Using pre_get_posts to change the main query
function wpldn_change_query( $query ) {
if( $query->is_home() && $query->is_main_query() ) {
$query->set( 'posts_per_page', 20 );
}
}
add_action( 'pre_get_posts', 'wpldn_change_query' );
Examples
Remove that pesky capital_P_dangit function
remove_filter( 'the_title', 'capital_P_dangit', 11 );
remove_filter( 'the_content', 'capital_P_dangit', 11 );
remove_filter( 'comment_text', 'capital_P_dangit', 31 );
* Check /wp-includes/default-filters.php to see what functions WP
is applying to its own filters
Resources
WordPress Codex - Action Reference
Resources
Debug Bar plugin & Action Hooks add on
Don't be scared!
Rummage around in core code to find filters
and hooks that are not documented.
A good knowledge of PHP will help you to find
and understand WordPress hooks.
IDEs can help in navigating through WP core
code.
Questions?

More Related Content

PPTX
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
PPTX
Wordpress hooks
PPT
WordPress Plugins: ur doin it wrong
PDF
2013 - Nate Abele Wield AngularJS like a Pro
PDF
Ako prepojiť aplikáciu s Elasticsearch
DOCX
Install Kubernetes Cluster on Azure Platform using kubespray
PDF
Ember Data and JSON API
PPTX
Grails plugin
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
Wordpress hooks
WordPress Plugins: ur doin it wrong
2013 - Nate Abele Wield AngularJS like a Pro
Ako prepojiť aplikáciu s Elasticsearch
Install Kubernetes Cluster on Azure Platform using kubespray
Ember Data and JSON API
Grails plugin

What's hot (20)

ODP
An Overview of Node.js
PPTX
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
PPTX
Ufo Ship for AWS ECS
PPT
Web Deployment With Visual Studio 2010
PPTX
Hooking with WordPress
PDF
Apache spark with akka couchbase code by bhawani
PPT
Introducing to node.js
PDF
Intro to BackboneJS + Intermediate Javascript
PPTX
Spine.js
PDF
NodeJS @ ACS
PDF
Service Worker - Reliability bits
PPTX
N:1 Replication meets MHA
PDF
Web Worker, Service Worker and Worklets
PDF
Meet VueJs
PPTX
BackboneJS Training - Giving Backbone to your applications
PPTX
Backbone/Marionette recap [2015]
PDF
Timothy N. Tsvetkov, Rails 3.1
PDF
Python Database Connection | Edureka
PPT
BackboneJs
PDF
Backbone js in action
An Overview of Node.js
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Ufo Ship for AWS ECS
Web Deployment With Visual Studio 2010
Hooking with WordPress
Apache spark with akka couchbase code by bhawani
Introducing to node.js
Intro to BackboneJS + Intermediate Javascript
Spine.js
NodeJS @ ACS
Service Worker - Reliability bits
N:1 Replication meets MHA
Web Worker, Service Worker and Worklets
Meet VueJs
BackboneJS Training - Giving Backbone to your applications
Backbone/Marionette recap [2015]
Timothy N. Tsvetkov, Rails 3.1
Python Database Connection | Edureka
BackboneJs
Backbone js in action
Ad

Similar to WordPress hooks - WPLDN July 2013 Meetup (20)

PPTX
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
PDF
Angular presentation
PDF
WebNet Conference 2012 - Designing complex applications using html5 and knock...
PPTX
Basics of AngularJS
PPTX
Introduction to jQuery
PDF
Application Security from the Inside - OWASP
PPTX
Google app engine by example
PDF
Code igniter - A brief introduction
PDF
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
PDF
important struts interview questions
PDF
Raybiztech Guide To Backbone Javascript Library
PPT
Quick Start: ActiveScaffold
PPTX
AngularJs Workshop SDP December 28th 2014
PPTX
Understanding angular js
PDF
Staying Sane with Drupal NEPHP
KEY
Approaches to mobile site development
PPTX
struts unit best pdf for struts java.pptx
PPTX
struts unit best pdf for struts java.pptx
PPTX
MVC & SQL_In_1_Hour
ODP
Knolx session
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
Angular presentation
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Basics of AngularJS
Introduction to jQuery
Application Security from the Inside - OWASP
Google app engine by example
Code igniter - A brief introduction
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
important struts interview questions
Raybiztech Guide To Backbone Javascript Library
Quick Start: ActiveScaffold
AngularJs Workshop SDP December 28th 2014
Understanding angular js
Staying Sane with Drupal NEPHP
Approaches to mobile site development
struts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptx
MVC & SQL_In_1_Hour
Knolx session
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
Teaching material agriculture food technology
PPTX
sap open course for s4hana steps from ECC to s4
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Big Data Technologies - Introduction.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Teaching material agriculture food technology
sap open course for s4hana steps from ECC to s4
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Mobile App Security Testing_ A Comprehensive Guide.pdf

WordPress hooks - WPLDN July 2013 Meetup

  • 1. WordPress Hooks Scott Cariss • @l3rady • Big Fish Ltd
  • 2. What I'm going to cover The WordPress page lifecycle. What are hooks and how do they fit into the page lifecycle? Why use hooks? What are actions What are filters Examples
  • 3. The WP page lifecycle "A page life cycle is nothing more than a combination of the events that take place from when a browser requests a page to when the server returns the page to the browser." Lets look at loading a single page in WP - Look at the requested page ID - Query the database - Get associated data (Categories, tags, images, etc) - Return all of the data to the browser
  • 4. The WP page lifecycle The template files and the calls to the API functions are then responsible for rendering, styling and position the data on the screen Sounds simple but this is just a simple page load. Think of more complex sites WP sites you have been on. You can now understand how intensive this particular process can be.
  • 6. The WP page lifecycle "While WordPress is running its series of queries and preparing to render data back to the browser, it’s looking at all of the custom hooks – that is, the actions and filters – that have been written and is passing data through those filters before returning data to the browser." At this point it's important to define what hooks are and look at the difference between action and filter hooks and how they play into this whole lifecycle
  • 7. What are hooks and why use them? They are the backbone of WordPress. They enable developers to "hook" into the WP lifecycle to change how it works without modifying the core code. Developers hook code is separate from WP core so that WP updates don't remove or destroy the developers code.
  • 8. Different functions for hooks Action Hooks - do_action() - add_action() - remove_action() - has_action() - do_action_ref_array() - did_action() - remove_all_actions() Filter Hooks - apply_filters() - add_filters() - remove_filters() - has_filter() - current_filter() - merge_filters() - remove_all_filters()
  • 9. Using action hooks do_action( 'hook_name', $arg1, $arg2, ... ); add_action( 'hook_name', 'your_function_name', [priority], [number_args_accepted] ); remove_action( 'hook_name', 'function_to_remove', [priority], [number_args_accepted] );
  • 10. Using filter hooks $value = apply_filters( 'hook_name', $value, $value2, ... ); add_filter( 'hook_name', 'your_filter_function', [priority], [number_args_accepted] ); remove_filter( 'hook_name', 'filter_function_to_remove', [priority], [number_args_accepted] );
  • 11. Examples Changing the excerpt length on the home page: function wpldn_excerpt( $length ) { if ( is_home() ) { return 20; } return $length; } add_filter( 'excerpt_length', 'wpldn_excerpt', 999 );
  • 12. Examples Adding Google Maps JS to contact us page function wpldn_maps_js() { if ( !is_page( 'contact-us' ) ) { return; } wp_enqueue_scripts( 'google_maps_api', '[PATH_TO_GOOGLE_MAP_API]', array(), false, true ); wp_enqueue_scripts( 'my_map_js', '[PATH_TO_YOUR_JS]', array( 'google_maps_api' ), false, true ); } add_action( 'wp_enqueue_scripts', 'wpldn_maps_js' );
  • 13. Examples Load a different theme template file at will function wpldn_any_file() { if( !is_page( "about-us" ) ) { return; } include( '/path/to/any/file.extension' ); exit(); } add_action( 'template_redirect', 'wpldn_any_file' );
  • 14. Examples Using pre_get_posts to change the main query function wpldn_change_query( $query ) { if( $query->is_home() && $query->is_main_query() ) { $query->set( 'posts_per_page', 20 ); } } add_action( 'pre_get_posts', 'wpldn_change_query' );
  • 15. Examples Remove that pesky capital_P_dangit function remove_filter( 'the_title', 'capital_P_dangit', 11 ); remove_filter( 'the_content', 'capital_P_dangit', 11 ); remove_filter( 'comment_text', 'capital_P_dangit', 31 ); * Check /wp-includes/default-filters.php to see what functions WP is applying to its own filters
  • 16. Resources WordPress Codex - Action Reference
  • 17. Resources Debug Bar plugin & Action Hooks add on
  • 18. Don't be scared! Rummage around in core code to find filters and hooks that are not documented. A good knowledge of PHP will help you to find and understand WordPress hooks. IDEs can help in navigating through WP core code.