writing extensible plugins

35
Writing Extensible Plugins in WordPress #WCTO2013

Upload: imran-nathani

Post on 17-May-2015

1.776 views

Category:

Technology


0 download

DESCRIPTION

Wordcamp Toronto 2013 #WCTO2013

TRANSCRIPT

Page 1: Writing extensible plugins

Writing Extensible Plugins in WordPress

#WCTO2013

Page 2: Writing extensible plugins

About Me

Imran Nathani What I do?:

Team lead at Shaw Media for GlobalNews.ca

Past Experience:

For 6 yrs I have been developing print and broadcast news websites.

Of which 4 years, I have spent exclusively developing on WordPress VIP.

Page 3: Writing extensible plugins

Extensibility

is notUsability

Usability

Target audience : All WordPress users

Expectations: Options Page, Shortcodes, Widgets etc.

Extensibility

Target audience: Developers

Expectations: ?????

Page 4: Writing extensible plugins

What is an

extensible

plugin?

A plugin that can be modified and extended beyond its original purpose by another plugin or theme without modifying

original plugin.

Page 5: Writing extensible plugins

Why write an extensible plugin?

Saves time Increases code portability Makes extra money $-) Reduces documentation

Page 6: Writing extensible plugins

Helper function

s

“Helps” re-use code “Helps” make code easier to read

Page 7: Writing extensible plugins

Hooks

Page 8: Writing extensible plugins

What are hooks ?

Traditional function call

Page 9: Writing extensible plugins

What are hooks ?

Wordpress Hook call

Page 10: Writing extensible plugins

What are hooks ?

Wordpress hook call ( Multiple )

Page 11: Writing extensible plugins

What are hooks ?

Hooks are placeholders for

code.

Page 12: Writing extensible plugins

Types of hooks

Action hook

Extending methods

Filter hook

Extend values

Returns a value Returns nothing

do_action( … ) apply_filters( … )

Page 13: Writing extensible plugins

Action hook

Wherever an action hook is placed, it will execute any code that has been “hooked” to it.

Page 14: Writing extensible plugins

Actionhookusage

Usage A :

do_action( ‘hook-name’ );

Usage B:

do_action( ‘hook-name’ , $arg1, $arg2, … );

Usage C:

do_action_ref_array( ‘hook-name’ , $array );

Page 15: Writing extensible plugins

Actions

Utility functions add_action(..)

remove_action(..)

remove_all_actions(..)

has_action(..)

did_action(..)

Page 16: Writing extensible plugins

Actions

Action placements Before a task After a task Append mark up

Page 17: Writing extensible plugins

Actions

Core actions publish_post save_post wp_head wp_foot

Page 18: Writing extensible plugins

ActionsDEMO

Page 19: Writing extensible plugins

Filter hooks

Wherever a filter hook is placed, it will manipulate any value that has been passed into with the function “hooked” to it

Page 20: Writing extensible plugins

Filter hook usage

Usage A :

$value = apply_filters( ‘hook-name’ , $value )

Usage B :

$value = apply_filters( ‘hook-name’ , $value, $args, .. )

Page 21: Writing extensible plugins

Filters

Utility functions add_filter(…)

remove_filter(…)

remove_all_filters(...)

has_filter(…)

current_filter( … )

Page 22: Writing extensible plugins

FiltersFilter placements Before using values

Before value set up

Before returning values

Page 23: Writing extensible plugins

Filters

Core filters the_title

the_excerpt

post_link

the_date

Page 24: Writing extensible plugins

FiltersDEMO

Page 25: Writing extensible plugins

Tips &

Tricks

Improve efficiency

Page 26: Writing extensible plugins

Tips &

Tricks

Improve efficiency

Page 27: Writing extensible plugins

Tips &

Tricks

Prefix hook names

Page 28: Writing extensible plugins

Tips &

Tricks

Do not over extend!

Page 29: Writing extensible plugins

Tips &

Tricks

Validate returns

Page 30: Writing extensible plugins

Tips &

Tricks

Combine Filters

Page 31: Writing extensible plugins

Tips &

Tricks

Combine Filters

Page 32: Writing extensible plugins

Tips &

Tricks

Localize scripts with Filters

Page 33: Writing extensible plugins

Tips &

Tricks

Localize scripts with Filters

Page 34: Writing extensible plugins

Good reads

Wordpress Codex ( How to? )

Wordpress Core ( Why to? )

Page 35: Writing extensible plugins

Questions?