×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
EASY EXTENSIBLE PLUGINS Mark Wilkinson @wpmark markwilkinson.me
Slide 2
Slide 2 text
Secondary School Computing Teacher
Slide 3
Slide 3 text
Freelance Developer working from home
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
31,491 PLUGINS *as of 05/06/2014
Slide 6
Slide 6 text
WHAT? WHY? TOOLS/FUNCTIONS EXAMPLES
Slide 7
Slide 7 text
PLUGIN and or THEME
Slide 8
Slide 8 text
One that can be modified or extended without changing the plugin code itself AN EXTENSIBLE PLUGIN is
Slide 9
Slide 9 text
WHY?
Slide 10
Slide 10 text
SAFE MODIFICATION FUNCTIONALITY
Slide 11
Slide 11 text
SAFE MODIFICATION FRONT END OUTPUT
Slide 12
Slide 12 text
https://www.flickr.com/photos/damndirty/10166197684
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
TOOLS FUNCTIONS
Slide 15
Slide 15 text
ACTIONS & FILTERS
Slide 16
Slide 16 text
do_action();
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
'do_action( 'twentyfourteen_credits’ );
Slide 19
Slide 19 text
function wpmark_notice() { echo '
Site by Mark Wilkinson
'; } add_action( 'twentyfourteen_credits', 'wpmark_notice' );
Slide 20
Slide 20 text
apply_filters();
Slide 21
Slide 21 text
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus malesuada sem at sapien rutrum, eu… Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus malesuada sem at sapien rutrum, eu…
Slide 22
Slide 22 text
'
'. apply_filters( 'latest_tweets_render_before', '' ). $list. apply_filters( 'latest_tweets_render_after', '' ). '
';
Slide 23
Slide 23 text
function wpmark_twitter( $content ) { /* get the twitter url from site options */ $url = get_option( ‘twitter_url' ); $content = '
@' . basename( $url ) . '
'; return $content; } add_filter( 'latest_tweets_render_before', ’wpmark_twitter' );
Slide 24
Slide 24 text
IMPEMENTATION INTO YOUR OWN PLUGINS
Slide 25
Slide 25 text
SETTING UP ARRAYS BEFORE/AFTER HTML OUTPUT BEFORE/AFTER SETUP
Slide 26
Slide 26 text
$query_args = array( 'post_type' => 'page', 'cat' => 1 );
Slide 27
Slide 27 text
$query_args = apply_filters( 'wpmark_query_args', array( 'post_type' => 'page', 'cat' => 1 ) );
Slide 28
Slide 28 text
$query = new WP_Query( $query_args ); while( $query->have_posts() ) : $query->the_post(); ?>
Slide 29
Slide 29 text
$query = new WP_Query( $query_args ); while( $query->have_posts() ) : $query->the_post(); do_action( ‘wpmark_before_post’, get_the_ID() ); ?>
Slide 30
Slide 30 text
$query = new WP_Query( $query_args ); while( $query->have_posts() ) : $query->the_post(); do_action( ‘wpmark_before_post’, get_the_ID() ); ?>
Slide 31
Slide 31 text
EXAMPLES
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
apply_filters( ‘gform_field_value_date’ );
Slide 34
Slide 34 text
function populate_date( $value ) { return "10/10/2010"; } add_filter( ‘gform_field_value_date’, ‘populate_date’ );
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
function wpmark_product_wrapper() { echo '
Something before the loop.
'; } add_action( 'woocommerce_before_shop_loop', 'wpmark_product_wrapper’ );
Slide 37
Slide 37 text
CONCLUSION
Slide 38
Slide 38 text
do_action(); apply_filters() OUR FRIENDS
Slide 39
Slide 39 text
THANK YOU Mark Wilkinson @wpmark markwilkinson.me
Slide 40
Slide 40 text
QUESTIONS