Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ResponsiveWordPress Theming
Jesse FriedmanAuthor, Professor, Developer - @professor
ResponsiveSo what’s the difference between a CMS based Responsive site and a            static one?
HTML, CSS, JavaScript
I C ES S    T R   A P T DS RW O
I C ES S    T R   A P T DS RW O
S S       R E    D P O RW
FRAMEWORKS,
FRAMEWORKS,GRID SYSTEMS,
FRAMEWORKS,GRID SYSTEMS,ALL THAT STUFF,
FRAMEWORKS,GRID SYSTEMS,ALL THAT STUFF,STILL WORKS!
User Admin    us·er ad·min
User Admin           us·er ad·minA person responsible for running    and operating a system
User Admin    us·er ad·min
User Admin           us·er ad·minIn other words, the person who’s    gonna gaff up your design
User Admin of your designMay compromise the integrity
User Admin of your designMay compromise the integrity
Userexpected to maintain responsive content         Admin’sCan’t be
Userexpected to maintain responsive content         Admin’sCan’t be
User some road blocks          Admin’sWill have
· Showing and Hiding Content based on    user deviceUser some road blocks          Admin’sWill have
· Showing and Hiding Content based on    user device  · Media and maintaining a fluid layoutUser some road blocks          ...
· Showing and Hiding Content based on    user device  · Media and maintaining a fluid layout  · Multiple ColumnsUser some r...
· Showing and Hiding Content based on    user device  · Media and maintaining a fluid layout  · Multiple Columns  · MenusUs...
Featured ImagesLeveraging WordPress
Featured ImagesLeveraging WordPress
Featured ImagesLeveraging WordPress
add_image_size(   slider, 800, 600, true );add_image_size(   sm-slider, 400, 300, true);add_image_size(   post-thumb, 600,...
Multi-ColumnUsing the screen up
Multi-ColumnRemember responsive isn’t just mobile
Multi-ColumnRemember responsive isn’t just mobile
Multi-ColumnRemember responsive isn’t just mobile
Multi-ColumnRemember responsive isn’t just mobile
MenusMobile and Desktop Menu Locations
Content is KING!Empowering User Admins to choose when toshow content
What if at the server level you could say: Content is KING! Empowering User Admins to choose when to show content
What if at the server level you could say:       On a mobile device? do this: Content is KING! Empowering User Admins to c...
What if at the server level you could say:       On a mobile device? do this:                  THIS Content is KING! Empow...
What if at the server level you could say:       On a mobile device? do this:                  THIS               else do ...
What if at the server level you could say:       On a mobile device? do this:                  THIS               else do ...
WordPress wp_is_mobile();
WordPress wp_is_mobile();<?php	 if ( wp_is_mobile() ) the_post_thumbnail( post-thumb );	 else the_post_thumbnail ( post-la...
What if at the server level you could say:
What if at the server level you could say:isiPhone()
What if at the server level you could say:isiPhone()isBlackBerry()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isS...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()isHTC()isNexus()isDellStre...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()isBlackBerry()         isHTCtablet()isHT...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
What if at the server level you could say:isiPhone()             isSamsungTablet()     iswebOS()isBlackBerry()         isH...
WordPress PHP Mobile Detect
WordPress PHP Mobile Detect<?php	 if ( isiPhone() ) echo <img src=".../optimized-iphone.jpg">;	 elseif ( isMobile() ) echo...
ShortcodesEmpowering User Admins to choose when toshow content
function j2theme_nomobile( $atts, $content="" ) {  global $detect;  if( ! $detect->is_Mobile() )return "{$content}";}add_s...
ShortcodesEmpowering User Admins to choose when toshow content
ShortcodesEmpowering User Admins to choose when toshow content
function j2theme_onlymobile( $atts, $content="" ){  global $detect;	  if( $detect->is_Mobile() )return "{$content}";}add_s...
ShortcodesEmpowering User Admins to choose when toshow content
What Does it all MeanGreater control over content to build custombut unified experiences for everyone
Less HTTP requestsWhat Does it all MeanGreater control over content to build custombut unified experiences for everyone
Less HTTP requests   No need for display:none;What Does it all MeanGreater control over content to build custombut unified ...
Less HTTP requests   No need for display:none;  Maintain same content for everyoneWhat Does it all MeanGreater control ove...
Less HTTP requests    No need for display:none;   Maintain same content for everyoneRemoval of calls to files you don’t nee...
REMEMBER!It’s about giving controlback to the User Admin
?’sJesse FriedmanAuthor, Professor, Developer - @professor
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Responsive WordPress Theming WordCamp Boston 2012
Upcoming SlideShare
Loading in …5
×

Responsive WordPress Theming WordCamp Boston 2012

1,893 views

Published on

Maintaining Rr

Published in: Technology, Business
  • Be the first to comment

Responsive WordPress Theming WordCamp Boston 2012

  1. 1. ResponsiveWordPress Theming
  2. 2. Jesse FriedmanAuthor, Professor, Developer - @professor
  3. 3. ResponsiveSo what’s the difference between a CMS based Responsive site and a static one?
  4. 4. HTML, CSS, JavaScript
  5. 5. I C ES S T R A P T DS RW O
  6. 6. I C ES S T R A P T DS RW O
  7. 7. S S R E D P O RW
  8. 8. FRAMEWORKS,
  9. 9. FRAMEWORKS,GRID SYSTEMS,
  10. 10. FRAMEWORKS,GRID SYSTEMS,ALL THAT STUFF,
  11. 11. FRAMEWORKS,GRID SYSTEMS,ALL THAT STUFF,STILL WORKS!
  12. 12. User Admin us·er ad·min
  13. 13. User Admin us·er ad·minA person responsible for running and operating a system
  14. 14. User Admin us·er ad·min
  15. 15. User Admin us·er ad·minIn other words, the person who’s gonna gaff up your design
  16. 16. User Admin of your designMay compromise the integrity
  17. 17. User Admin of your designMay compromise the integrity
  18. 18. Userexpected to maintain responsive content Admin’sCan’t be
  19. 19. Userexpected to maintain responsive content Admin’sCan’t be
  20. 20. User some road blocks Admin’sWill have
  21. 21. · Showing and Hiding Content based on user deviceUser some road blocks Admin’sWill have
  22. 22. · Showing and Hiding Content based on user device · Media and maintaining a fluid layoutUser some road blocks Admin’sWill have
  23. 23. · Showing and Hiding Content based on user device · Media and maintaining a fluid layout · Multiple ColumnsUser some road blocks Admin’sWill have
  24. 24. · Showing and Hiding Content based on user device · Media and maintaining a fluid layout · Multiple Columns · MenusUser some road blocks Admin’sWill have
  25. 25. Featured ImagesLeveraging WordPress
  26. 26. Featured ImagesLeveraging WordPress
  27. 27. Featured ImagesLeveraging WordPress
  28. 28. add_image_size( slider, 800, 600, true );add_image_size( sm-slider, 400, 300, true);add_image_size( post-thumb, 600, 350, true );add_image_size( sm-post-thumb, 300, 175, true ); Featured Images Leveraging WordPress
  29. 29. Multi-ColumnUsing the screen up
  30. 30. Multi-ColumnRemember responsive isn’t just mobile
  31. 31. Multi-ColumnRemember responsive isn’t just mobile
  32. 32. Multi-ColumnRemember responsive isn’t just mobile
  33. 33. Multi-ColumnRemember responsive isn’t just mobile
  34. 34. MenusMobile and Desktop Menu Locations
  35. 35. Content is KING!Empowering User Admins to choose when toshow content
  36. 36. What if at the server level you could say: Content is KING! Empowering User Admins to choose when to show content
  37. 37. What if at the server level you could say: On a mobile device? do this: Content is KING! Empowering User Admins to choose when to show content
  38. 38. What if at the server level you could say: On a mobile device? do this: THIS Content is KING! Empowering User Admins to choose when to show content
  39. 39. What if at the server level you could say: On a mobile device? do this: THIS else do this: Content is KING! Empowering User Admins to choose when to show content
  40. 40. What if at the server level you could say: On a mobile device? do this: THIS else do this: OTHER THIS Content is KING! Empowering User Admins to choose when to show content
  41. 41. WordPress wp_is_mobile();
  42. 42. WordPress wp_is_mobile();<?php if ( wp_is_mobile() ) the_post_thumbnail( post-thumb ); else the_post_thumbnail ( post-large );?>
  43. 43. What if at the server level you could say:
  44. 44. What if at the server level you could say:isiPhone()
  45. 45. What if at the server level you could say:isiPhone()isBlackBerry()
  46. 46. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()
  47. 47. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()
  48. 48. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()
  49. 49. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()
  50. 50. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()
  51. 51. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()
  52. 52. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()
  53. 53. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()
  54. 54. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()
  55. 55. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()
  56. 56. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()
  57. 57. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()
  58. 58. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()
  59. 59. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()
  60. 60. What if at the server level you could say:isiPhone()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  61. 61. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  62. 62. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  63. 63. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  64. 64. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  65. 65. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  66. 66. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  67. 67. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  68. 68. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  69. 69. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  70. 70. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  71. 71. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  72. 72. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  73. 73. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet()isBlackBerryTablet()isiPad()isKindle()
  74. 74. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet()isiPad()isKindle()
  75. 75. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad()isKindle()
  76. 76. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle()
  77. 77. What if at the server level you could say:isiPhone() isSamsungTablet()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  78. 78. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  79. 79. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  80. 80. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  81. 81. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  82. 82. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  83. 83. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  84. 84. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  85. 85. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  86. 86. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  87. 87. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  88. 88. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS() isTeaShark()isAcerTablet() isSymbianOS()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  89. 89. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS() isTeaShark()isAcerTablet() isSymbianOS() isBlazer()isYarvikTablet() isWindowsMobileOS()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  90. 90. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS() isTeaShark()isAcerTablet() isSymbianOS() isBlazer()isYarvikTablet() isWindowsMobileOS() isSafari()isGenericTablet() isiOS()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  91. 91. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS() isTeaShark()isAcerTablet() isSymbianOS() isBlazer()isYarvikTablet() isWindowsMobileOS() isSafari()isGenericTablet() isiOS() isMidori()isBlackBerryTablet() isFlashLiteOS()isiPad() isJavaOS()isKindle() isNokiaOS()
  92. 92. What if at the server level you could say:isiPhone() isSamsungTablet() iswebOS()isBlackBerry() isHTCtablet() isbadaOS()isHTC() isMotorolaTablet() isBREWOS()isNexus() isAsusTablet() isChrome()isDellStreak() isNookTablet() isDolfin()isMotorola() isAcerTablet() isOpera()isSamsung() isYarvikTablet() isSkyfire()isSony() isGenericTablet() isIE()isAsus() isAndroidOS() isFirefox()isPalm() isBlackBerryOS() isBolt()isGenericPhone() isPalmOS() isTeaShark()isAcerTablet() isSymbianOS() isBlazer()isYarvikTablet() isWindowsMobileOS() isSafari()isGenericTablet() isiOS() isMidori()isBlackBerryTablet() isFlashLiteOS() isGenericBrowser()isiPad() isJavaOS()isKindle() isNokiaOS()
  93. 93. WordPress PHP Mobile Detect
  94. 94. WordPress PHP Mobile Detect<?php if ( isiPhone() ) echo <img src=".../optimized-iphone.jpg">; elseif ( isMobile() ) echo <img src=".../mobile.jpg">; elseif ( isTablet() ) echo <img src=".../tablet.jpg">; else echo <img src=".../regular-image.jpg">;?>
  95. 95. ShortcodesEmpowering User Admins to choose when toshow content
  96. 96. function j2theme_nomobile( $atts, $content="" ) { global $detect; if( ! $detect->is_Mobile() )return "{$content}";}add_shortcode( nomobile, j2theme_nomobile ); Shortcodes Empowering User Admins to choose when to show content
  97. 97. ShortcodesEmpowering User Admins to choose when toshow content
  98. 98. ShortcodesEmpowering User Admins to choose when toshow content
  99. 99. function j2theme_onlymobile( $atts, $content="" ){ global $detect; if( $detect->is_Mobile() )return "{$content}";}add_shortcode( onlymobile, j2theme_onlymobile ); Shortcodes Empowering User Admins to choose when to show content
  100. 100. ShortcodesEmpowering User Admins to choose when toshow content
  101. 101. What Does it all MeanGreater control over content to build custombut unified experiences for everyone
  102. 102. Less HTTP requestsWhat Does it all MeanGreater control over content to build custombut unified experiences for everyone
  103. 103. Less HTTP requests No need for display:none;What Does it all MeanGreater control over content to build custombut unified experiences for everyone
  104. 104. Less HTTP requests No need for display:none; Maintain same content for everyoneWhat Does it all MeanGreater control over content to build custombut unified experiences for everyone
  105. 105. Less HTTP requests No need for display:none; Maintain same content for everyoneRemoval of calls to files you don’t need What Does it all Mean Greater control over content to build custom but unified experiences for everyone
  106. 106. REMEMBER!It’s about giving controlback to the User Admin
  107. 107. ?’sJesse FriedmanAuthor, Professor, Developer - @professor

×