5. The Struggle Is…
● PHP is scary
● Making your own plugin is scary
● PHP is very scary
● You just never have the options you need
6. My Journey
2011 Mike “The SEO”
2012 Mike “Frameworks”
2013 Mike “The Hacker”
2014 Mike “Expert Generalist”
7. Whats a Hook According to the Codex
“Hooks are specified, by the developer, in
Actions and Filters. “
“In technical and strict terms: a Hook is an event, i.e. event as understood
by Observer pattern, invoked by the do_action() or apply_filters() call that
afterwards triggers all the action or filter functions, previously hooked to
that event using add_action() or add_filter(), respectively.”
8. Where do Hooks Live
Generally speaking, you have 3 different
places where “hooks” live.
● Core
● Themes
● Plugins
9. Allows you to “do something” to insert
something at a “checkpoint”.
Action Defined
12. Adding What You Want (Writing a Function)
function wc_your_function_name() {
?>
<!--hi people-->
<?php
}
Your function name
PHP On and Off
Your HTML
13. Real Life Example
//Adding A Credit Link to TwentyFourteen
add_action( 'twentyfourteen_credits' , 'mz_site_credits'
);
function mz_site_credits() {
echo "<a href='http://iammike.co' title='mike
zielonka'>Designed by Mike Zielonka</a>";
}
14. Allows you to “filter the result” and return
something different at a “fancy checkpoint”.
Filter
17. Returning What You Want (Writing a Function)
function wc_your_function_filter_name($title, $sep)
{
$name = ‘My Site is Called ’;
$title .= $sep . ' ' . $name;
return $title;
}
Your function name
Return your
changes
Arguments
18. Real Life Example
//Adding a Phrase the Site Title
add_filter( 'wp_title', 'wc_your_function_filter_name', 10, 2 );
function wc_your_function_filter_name($title, $sep) {
$name = 'My Site is Called ';
$title .= $sep . ' ' . $name;
return $title;
}
19. Where To Put Your Hooks
● Functions.php of your theme
○ Preferably in a child theme
● Plugin
20. Adding Hooks To A Plugin
Add Opening PHP Tag and Add A Plugin Header
<?php
/*
Plugin Name: Mike's Sample Plugin
Plugin URI:
Description: Adds some sample hooks.
Author: Mike Zielonka
Version: 1.0
Author URI: http://iammike.co
Text Domain: mz-sample-plugin
*/
22. Basic Rookie Tips
● Namespace your functions to avoid
conflicts. ie: mz_function
● Do not start functions with numbers.
● Always take back ups.
● Learn more about the PHP function
function_exists() to prevent headaches
when switching themes and plugins