how i became a wordpress hacker
DESCRIPTION
A talk given at WordCamp Milwaukee on how to use WordPress Hooks called: Actions and Filters to become a WordPress Hacker.TRANSCRIPT
How I Became a WordPress Hacker
Mike Zielonka @mikezielonka
Co-Founder and Director of Web StrategyAt Tuna Traffic
Loves Pizza, Dogs, More Pizza and Coffee
I Am Mike Zielonka
What We’ll Cover
● Why the struggle is part of the journey● The basics of using Actions & Filters● How to make a plugin for your Hooks
Successful WordPress Hackers Can...
Customize WordPress Themes and Plugins without writing a lot of code.
The Struggle Is…
● PHP is scary● Making your own plugin is scary● PHP is very scary● You just never have the options you need
My Journey
2011 Mike “The SEO”
2012 Mike “Frameworks”
2013 Mike “The Hacker”
2014 Mike “Expert Generalist”
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.”
Where do Hooks Live
Generally speaking, you have 3 different places where “hooks” live.● Core● Themes● Plugins
Allows you to “do something” to insert something at a “checkpoint”.
Action Defined
Action Exampleadd_action( ‘wp_head’, ‘wc_your_function_name’ );
function wc_your_function_name() {
?>
<!--hi people-->
<?php
}
add_actionadd_action( ‘wp_head’, ‘wc_your_function_name’ );
Where You Hook In What To Add
Adding What You Want (Writing a Function)
function wc_your_function_name() {
?>
<!--hi people-->
<?php
}
Your function name
PHP On and Off
Your HTML
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>";
}
Allows you to “filter the result” and return something different at a “fancy checkpoint”.
Filter
Filter Exampleadd_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;
}
add_filteradd_filter( ‘wp_title’,‘wc_your_function_filter_name’, 10, 2 );
Where You Hook In What To Add Priority
Accepted Arguments
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
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;
}
Where To Put Your Hooks
● Functions.php of your theme○ Preferably in a child theme
● Plugin
Adding Hooks To A PluginAdd 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
*/
Putting It All Together
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
Helpful ToolsFor Hooking Efficiently
Debug Bar w/ Debug Bar Actions and Filters Addon
Searching for Actions in Sublime Text 3
Follow Me On Twitter@mikezielonka
Thank You