$30 off During Our Annual Pro Sale. View Details »

WordPress WTF

Adam Onishi
February 24, 2014

WordPress WTF

After you’ve spent many years working with something, you start to get to that point where you feel competent, that you can do anything and every problem has a solution. However, with this understanding you also get to a point where as well as seeing how something works, you can also see how badly it does it. This is the point Adam has come to with WordPress.

In this talk, you’ll take a look over some weaknesses with WordPress, exploring downsides of the architecture, the theming and some more general problems around the platform. But also you’ll see how to avoid these problems and write better themes, plugins, and websites with WordPress.

Video here: http://www.supermondays.org/2014/02/25/content-management-systems-videos/

Adam Onishi

February 24, 2014
Tweet

More Decks by Adam Onishi

Other Decks in Programming

Transcript

  1. @onishiweb
    What The F...!

    View Slide

  2. @onishiweb

    View Slide

  3. @onishiweb
    Photo by Dan Goven: http://flic.kr/p/js7sdf

    View Slide

  4. @onishiweb

    View Slide

  5. @onishiweb
    Shameless Plug

    View Slide

  6. @onishiweb

    View Slide

  7. @onishiweb

    View Slide

  8. @onishiweb
    WTF
    WordPress?

    View Slide

  9. @onishiweb
    Templates...

    View Slide

  10. @onishiweb
    Templates are built
    procedurally




    View Slide

  11. @onishiweb
    No separation of logic
    from the view

    View Slide

  12. @onishiweb

    View Slide

  13. @onishiweb
    Template
    Tags...

    View Slide

  14. @onishiweb
    Content Tags are alright




    View Slide

  15. @onishiweb
    If sometimes a little
    confusing




    View Slide

  16. @onishiweb
    A bit more confusing...


    View Slide

  17. @onishiweb
    A bit more confusing...
    if( have_posts() ):
    while( have_posts() ): the_post();
    /* Do stuff */
    endwhile;
    endif; ?>

    View Slide

  18. @onishiweb
    And even more confusing!


    View Slide

  19. @onishiweb
    Template Tags
    But...

    View Slide

  20. @onishiweb
    IDs..!

    View Slide

  21. @onishiweb
    IDs EVERYWHERE!




    View Slide

  22. @onishiweb
    IDs EVERYWHERE!




    View Slide

  23. @onishiweb
    IDs EVERYWHERE!




    View Slide

  24. @onishiweb
    WordPress Hooks
    to the rescue
    add_filter('body_class', ... );
    add_filter('post_class', ... );

    View Slide

  25. @onishiweb
    Add better classes
    function dig_add_useful_classes($classes) {
    global $post;
    if( ! is_tag() ) {
    $classes[] = dig_get_post_type_class();
    }
    if( is_page() ) {
    global $post;
    $classes[] = 'page-' . $post->post_name;
    }
    return $classes;
    }
    https://gist.github.com/onishiweb/9151982

    View Slide

  26. @onishiweb
    Add better classes
    function dig_get_post_type_class( $type = false ) {
    if( ! $type ) {
    $type = dig_current_post_type();
    }
    $class = str_replace('dig_', '', $type);
    $class = str_replace('_', '-', $class);
    return $class;
    }
    https://gist.github.com/onishiweb/9151992

    View Slide

  27. @onishiweb
    Add better classes
    function dig_current_post_type() {
    global $post;
    if( ! is_tag() ) {
    $type_name = get_post_type();
    if( ! $type_name ) {
    $taxonomy = get_query_var( 'taxonomy' );
    $type_name = substr_replace($taxonomy, '', -9);
    }
    return $type_name;
    }
    }
    https://gist.github.com/onishiweb/9152009

    View Slide

  28. @onishiweb
    Better classes =
    Happy Adam!




    View Slide

  29. @onishiweb
    WP-Admin...

    View Slide

  30. @onishiweb

    View Slide

  31. @onishiweb

    View Slide

  32. @onishiweb

    View Slide

  33. @onishiweb

    View Slide

  34. @onishiweb

    View Slide

  35. @onishiweb
    WP-Admin
    But...

    View Slide

  36. @onishiweb

    View Slide

  37. @onishiweb
    @MKJONES
    @MWTSN
    http://wpclarity.com/

    View Slide

  38. @onishiweb
    Plugins...

    View Slide

  39. @onishiweb
    Plugins...

    View Slide

  40. @onishiweb
    Biggest lesson learnt from this
    current project: WordPress
    plugins are largely evil, and
    should not be relied on for
    core functionality
    - Alex Jegtnes (@jegtnes)

    View Slide

  41. @onishiweb
    Have you tried
    deactivating your
    plugins?

    View Slide

  42. @onishiweb
    Plugins
    But...

    View Slide

  43. @onishiweb

    View Slide

  44. @onishiweb
    It’s not all
    bad...

    View Slide

  45. @onishiweb
    Open Source

    View Slide

  46. @onishiweb
    The Codex

    View Slide

  47. @onishiweb
    The
    Community!

    View Slide

  48. @onishiweb
    Photo by Jonny Allbut: http://flic.kr/p/hQbbEq

    View Slide

  49. @onishiweb
    Thank You

    View Slide