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,596 views
1,535 views

Published on

Maintaining Rr

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,596
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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

    ×