WCPHX2014 – WordCamp Phoenix 2014 – Day 2

My second day at WordCamp was heavily overshadowed by the Saturday night party :). There were also some presentations I couldn’t quite connect with. Nevertheless lots of cool stuff. If you are looking for my first day at WCPHX 2014, you find it here: http://schurpf.com/wcphx2014-day1

Day 2

@scottbolinger – Apppresser

Talk about @apppresser

@pdclark – Cowboy, Meet Ninja

slides: http://pdclark.com/wcphx2014/

sandwich

source: http://xkcd.com/149/

wp engine .gitignore: http://cdn.wpengine.com/wp-content/uploads/2013/10/recommended-gitignore-wp.txt
deploy git to svn for wp plugins: https://github.com/brainstormmedia/deploy-plugin-to-wordpress-dot-org
php error logger for console: http://firelogger.binaryage.com
hide test sites: http://wordpress.org/plugins/wp-require-login/ or http://wordpress.org/plugins/wp-maintenance-mode

@pippinsplugins – Sane plugin updates
slides: http://pippinsplugins.com/slides/wcphx/22703/

beta test
tag releases
change logs with prefixes: NEW:, FIX:, TWEAK:
Release often iterate quickly (point releases)
Use auto updater for non wp plugin repo hosted plugin

http://wordpress.org/plugins/wordpress-reset/

@williamsba – Writing Secure WordPress code

slides: http://www.slideshare.net/williamsba/writing-secure-wordpress-code

  • SQL Injection SQLi
  • Cross Site Scripting XSS
  • Cross Site Request Forgery CSRF
esc_attr_e( $text, $domain );
esc_url( $url, $protocols, $_context );
esc_url_raw( $url, $protocols );	
sanitize_text_field( $str );
wp_kses( $string, $allowed_html, $allowed_protocols );
wp_kses_post( $data );

wp_nonce_field( $action, $name, $referer, $echo );
check_admin_referer( $action, $query_arg );
wp_nonce_url( $actionurl, $action, $name );

http://codex.wordpress.org/Data_Validation

@jondavidjohn – WP Deployment

slides: http://jondavidjohn.github.io/bigredbutton/

https://github.com/capistrano/capistrano/wiki/2.x-Getting-Started

https://github.com/crowdfavorite/gem-capistrano-wp

Other interesting projects/people

@jcasabona
http://casabona.org/events/responsive-design-with-wordpress-wcphx/

@ReduxFramework
http://reduxframework.com/

https://github.com/logoscreative/archetype-genesis

backbonejs
http://wordpress.tv/2013/10/20/k-adam-white-building-apps-with-backbone-js-and-wordpress/
https://github.com/kadamwhite/backbone-wordpress-demo

http://wordpress.org/plugins/json-api

interacting with external apis
http://wordpress.tv/2014/01/10/ben-lobaugh-interacting-with-external-apis-2/

just in time user interactions
http://www.youtube.com/watch?v=Sx5GJo_14S8

http://wordpress.org/plugins/wp-help/

https://www.cloudflare.com

Python Capistrano alike deployment: https://github.com/AllStruck/secret-robot

This is really more a summary of awesome than anything else. Thanks WCPHX2014! I left early Sunday morning so no Day 3 for me this time :(. I will sure stay next time until the end.

WCPHX2014 – WordCamp Phoenix 2014 – Day 1

This is unreal, all the great stuff I learned over the short time span. Got a lot of new ideas and things to learn from this small weekend. I wanted to put together what I found most interesting in this blog post more as a list and reminder for myself but also for anybody reading this. It may start you off on a learning quest :)

This is not my attempt at a complete summary of WCPHX2014, I am merely trying to note down the things I found most interesting and acredit the person how got me to think in that direction via their twitter handle.

Day 1

@bradparbs – Writing Extensible Plugins

slides: http://b.parbs.me/TPhc

if (function_exists(function_name))
if (class_exists(class_name))

do_action( $tag, $arg );
apply_filters( $tag, $value );

load order of plugins, use: plugins_loaded

get_template_part( $slug, $name );

file_exists(filename)

wpcli – command line for wordpress
check: http://www.getsource.net/2013/07/wcsf2013-wpcli/ for more

local dev environment – https://github.com/10up/varying-vagrant-vagrants

linter – https://github.com/SublimeLinter/SublimeLinter

@obencain, @michaeldcain
slides: https://cloudup.com/c6A3IprTH6N

Don’t trust anybody – SANATIZE your data

some functions to look at:

wp_localize_script( $handle, $object_name, $l10n );
wp_add_inline_style( $handle, $data );
has_post_format( $format, $post );
wp_list_pluck( $list, $field );

is_email( $email, $deprecated );
human_time_diff( $from, $to );
wp_trim_words( $text, $num_words, $more );	
capital_p_dangit( $text );
esc_url_raw( $url, $protocols );

https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php

@cliffseal
slides: http://www.slideshare.net/cliffseal/transients-wcphx

set_transient( $transient, $value, $expiration );	
get_transient( $transient );
delete_transient( $transient );
wp_remote_get( $url, $args );	
wp_remote_retrieve_body( $response );

http://codex.wordpress.org/Transients_API

set transient for db queries, external api calls, any data task that takes time

Tip: hook in logical spots to delete transient
Example delete transient on post save

add_action( 'save_post', schurpf_del_transient );
function schurpf_del_transient()
{
	delete_transient('schurpf_my_transient' );
}

https://github.com/logoscreative/wcphx14-demo-plugin

Mark Jaquith solution: https://github.com/markjaquith/WP-TLC-Transients

[wpsleep start=”26.01.2014 21:55″]Check out my second day at WCPHX 2014 at http://schurpf.com/wcphx2014-day2/.[/wpsleep]