42
Building Web Apps with WordPress WordPress as an Application Framework

Building Web Apps with WordPress

Embed Size (px)

Citation preview

Page 1: Building Web Apps with WordPress

Building Web Apps with WordPress

WordPress as an Application Framework

Page 2: Building Web Apps with WordPress

I love WordPress!I love WordPress!I love WordPress!I love WordPress!I love WordPress!I love WordPress!I love WordPress!I love WordPress!I love WordPress!

Brian Messenlehner

@bmess

Mess*in*lay*ner

Page 3: Building Web Apps with WordPress

Co-Author: Building Web Apps with WordPress

@bwawwp

bwawwp.com

We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!

Page 4: Building Web Apps with WordPress

We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!

Co-Founder:WebDevStudios

@webdevstudios

webdevstudios.com

Page 5: Building Web Apps with WordPress

We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!We love WordPress!

Co-Founder:AppPresser

@apppresser

apppresser.com

We love mobile apps!We love mobile apps!We love mobile apps!We love mobile apps!We love mobile apps!We love mobile apps!

Page 6: Building Web Apps with WordPress

What is a Web Application Framework?A web application framework (WAF) is a software that is designed to support the development of dynamic websites, web applications, web services and web resources.

Can you build dynamic websites, web applications, web services and web resources with WordPress?

WordPress is a Web Application Framework!

Page 7: Building Web Apps with WordPress

What can you make?● Blogs● Websites● Content Management Systems● Ecommerce Solutions● Mobile App Hybrids● Social Networks● Company Intranets● Coffee● $$$$$$$

@bmess @webdevstudios @apppresser @bwawwp

Page 8: Building Web Apps with WordPress

But why use WordPress?● It’s Open Source - It’s free, has thousands of themes

and plugins to extend functionality and has a supportive community.

● It’s Popular - 20% of all websites on the internet use WordPress.

● It’s Secure - Just don’t make your password “password”.

● It’s Extendable - The source code is laced with hooks you can use in your custom theme or plugin.

@bmess @webdevstudios @apppresser @bwawwp

Page 9: Building Web Apps with WordPress

Hooks● Action Hooks - Insert your own code wherever there

is an available do_action().● Filter Hook - Hijack any data wrapped in

apply_filters() and alter what gets returned.

@bmess @webdevstudios @apppresser @bwawwp

do_action( 'init' );

add_action( 'init', 'wds_function' );function wds_function(){

echo 'Hi People!';exit();

}

apply_filters( 'the_content', $content );

add_filter( 'the_content', 'wds_function', 99, 1 );function wds_function( $content ){

$content .= 'Hi People!';return $content;

}

Page 10: Building Web Apps with WordPress

Manage Users● Basic User Data - Login, email and password

(encrypted)● Meta Data - Make any additional user data.● Custom Roles - Define custom user roles and

capabilities.

@bmess @webdevstudios @apppresser @bwawwp

wp_insert_user();wp_update_user();get_users();get_userdata();wp_delete_user();

add_user_meta();update_user_meta();get_user_meta();delete_user_meta();

Page 11: Building Web Apps with WordPress

Manage Posts● Basic Post Data - Title, content, author, etc...● Meta Data - Make any additional post data.

@bmess @webdevstudios @apppresser @bwawwp

wp_insert_post();wp_update_post();get_posts();get_post();wp_delete_post();

add_post_meta();update_post_meta();get_post_meta();delete_post_meta();

WP_Query();query_posts();

Page 12: Building Web Apps with WordPress

Custom Post Types & Taxonomies

@bmess @webdevstudios @apppresser @bwawwp

● Pages● Posts

○ Categories○ Tags

● Cars○ Make○ Model○ Year○ Color

register_post_type();register_taxonomy();

$cars = new WP_Query('post_type=cars’);

Page 13: Building Web Apps with WordPress

Make it faster!

@bmess @webdevstudios @apppresser @bwawwp

● C.R.E.A.M - Cache Rules Everything Around Me○ Plugins - W3 Total Cache, WP Super Cache○ Hosting - WPEngine.com & SiteGround.com have

great caching systems for their WordPress clients.○ Transients - Utilize Transients in your code.

● CDN - Content Delivery Network. Let the CDN serve your JavaScript, CSS and image files.○ MAXCDN○ Photon○ CloudFlare

I heard WordPress can’t scale...Ever been to WordPress.com???

Page 14: Building Web Apps with WordPress

Transients

@bmess @webdevstudios @apppresser @bwawwp

$query = get_transient( 'wds_query' );if ( empty( $query ) ){ $query = new WP_Query( 'category=featured' ); set_transient('wds_query', $query, DAY_IN_SECONDS );}

MINUTE_IN_SECONDS = 60 (seconds)HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDSDAY_IN_SECONDS = 24 * HOUR_IN_SECONDSWEEK_IN_SECONDS = 7 * DAY_IN_SECONDSYEAR_IN_SECONDS = 365 * DAY_IN_SECONDS

delete_transient( 'wds_query' );

Page 15: Building Web Apps with WordPress

WordPress Multisite● Shared Database● Shared Source Files

● Sub Directory - webapp.com/subsite● Sub Domain - subsite.webapp.com

● Each site has an incrementing ID○ ID is used in database tables prefix○ ID is used in upload directory for storing files

● Useful Plugins○ Domain Mapping○ Blog Copier

Page 16: Building Web Apps with WordPress

BuddyPress & bbPress

@bmess @webdevstudios @apppresser @bwawwp

Page 17: Building Web Apps with WordPress

BuddyPress & bbPress

@bmess @webdevstudios @apppresser @bwawwp

Page 18: Building Web Apps with WordPress

BuddyPress & bbPress

@bmess @webdevstudios @apppresser @bwawwp

Page 19: Building Web Apps with WordPress

BuddyPress & bbPress

@bmess @webdevstudios @apppresser @bwawwp

Page 20: Building Web Apps with WordPress

BuddyPress & bbPress

@bmess @webdevstudios @apppresser @bwawwp

Page 21: Building Web Apps with WordPress

@bmess @webdevstudios @apppresser @bwawwp

badgeos.org

Page 22: Building Web Apps with WordPress

Social Logins

@bmess @webdevstudios @apppresser @bwawwp

Page 23: Building Web Apps with WordPress

Native Facebook Apps

@bmess @webdevstudios @apppresser @bwawwp

Page 24: Building Web Apps with WordPress

Native Facebook Apps

@bmess @webdevstudios @apppresser @bwawwp

Facebook Canvas page is basically an iframe

Page 25: Building Web Apps with WordPress

Native Facebook Apps

@bmess @webdevstudios @apppresser @bwawwp

Page 26: Building Web Apps with WordPress

It’s just PHP

@bmess @webdevstudios @apppresser @bwawwp

Can’t find a plugin? Want to save time? Want to save money?

Build WordPress plugins from Drupal Modules and/or Joomla Extensions. Search Github for the code you need!

Use PHP libraries to build cool things.● ImageMagick - Manipulate images programmatically● Goutte - Scrape data from websites● PDF - Generate PDF documents programmatically

Page 27: Building Web Apps with WordPress

3rd Party APIs & Services

@bmess @webdevstudios @apppresser @bwawwp

● Google Translate● Google Maps● Google+● YouTube● Twitter● Facebook● Instagram● Foursquare● Twilio

● flickr● Semantics3● Amazon● Microsoft SharePoint● salesforce● MaxMind GeoIP

Page 28: Building Web Apps with WordPress

XML-RPCControl any WordPress site from another WordPress site or another web application.

require_once ABSPATH . 'wp-includes/class-IXR.php';$xmlrpc_url = 'http://anotherwordpresssite.com/xmlrpc.php';$xmlrpc_user = 'admin';$xmlrpc_pass = 'password';$rpc = new IXR_CLIENT( $xmlrpc_url );$rpc->query( 'wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass );print_r( $rpc->getResponse() );

● wp.getAuthors● wp.getPosts● wp.getPost● wp.newPost● wp.editPost● wp.deletePost

● wp.getOptions● wp.setOptions● wp.getTerms● wp.getTerm● wp.newTerm● wp.getTaxonomies

Page 29: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

webviews - Fastest way to make a mobile app.

Utilize native device features with XML-RPC to push and pull data to and from WordPress.

Page 30: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

RNP9

Page 31: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

RNP9

Page 32: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

RNP9

Page 33: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

RNP9

Page 34: Building Web Apps with WordPress

@bmess @webdevstudios @apppresser @bwawwp

badgeos.org

Page 35: Building Web Apps with WordPress

Hybrid Mobile Apps

@bmess @webdevstudios @apppresser @bwawwp

Don’t want to code it yourself?

Build iOS/Android apps using WordPress

Page 36: Building Web Apps with WordPress

AppPresser

@bmess @webdevstudios @apppresser @bwawwp

Page 37: Building Web Apps with WordPress

AppPresser

@bmess @webdevstudios @apppresser @bwawwp

What can you build?

Anything you want...

Page 38: Building Web Apps with WordPress

Beer & Date App

@bmess @webdevstudios @apppresser @bwawwp

Step 1: Choose your BeerStep 2: Choose your DateStep 3: ConfirmStep 4: Good Time

WordPress Plugins:BuddyPress

AppPresser Extensions:AppCamera AppPushAppGeo AppMaps

Page 39: Building Web Apps with WordPress

@bmess @webdevstudios @apppresser @bwawwp

What Else?

Page 40: Building Web Apps with WordPress

Google Glass

@bmess @webdevstudios @apppresser @bwawwp

Post photos to your WordPress site by winking and talking.

See comments when they are made.

Page 41: Building Web Apps with WordPress

Oculus Virtual Reality

@bmess @webdevstudios @apppresser @bwawwp

Virtual Learning Environment with content driven by WordPress

BadgeOS for unlocking Achievements

WordPress is the perfect vehicle for content delivery!

Page 42: Building Web Apps with WordPress

Questions???

Follow Me:@bmess@webdevstudios@apppresser@bwawwp