Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Customizing WordPress - Ioannis Karavas Software Engineer

Customizing WordPress - Ioannis Karavas Software Engineer

WordPress Greek Community

April 28, 2015
Tweet

More Decks by WordPress Greek Community

Other Decks in Technology

Transcript

  1. Customizing WordPress
    Customizing WordPress
    Ioannis Karavas
    Software Engineer

    View Slide

  2. Music
    Industry E-commerce Organizations
    Who uses WordPress?

    View Slide

  3. WordPress is customizable
    WordPress is customizable

    View Slide

  4. Filters
    Filters

    View Slide

  5. Filters
    Filters

    function gimme_browser($classes) {
    global $is_IE, $is_opera, $is_chrome, $is_iphone;
    if ($is_chrome) $classes[] = 'chrome';
    elseif ($is_opera) $classes[] = 'opera';
    ...
    return $classes;
    }

    View Slide

  6. Actions
    Actions

    View Slide

  7. Actions
    Actions
    add_action( 'user_register', 'handle_new_user' );
    function handle_new_user($user_id) {
    $user_info = ...
    $new_post = array(
    'post_name' => $user_name,
    ...
    'post_excerpt' => '...',
    'post_content' => 'Prompt user...'
    );
    wp_insert_post( $new_post, $wp_error );
    }

    View Slide

  8. Child Themes
    Child Themes

    View Slide

  9. Child Themes
    Child Themes
    function child_styles() {
    wp_enqueue_style(
    'parent-style',
    get_template_directory_uri().'/style.css');
    }
    add_action( 'wp_enqueue_scripts', 'child_styles' );
    functions.php is not overwritten!

    View Slide

  10. Roles & Capabilities
    Roles & Capabilities

    View Slide

  11. Roles & Capabilities
    Roles & Capabilities
    function restrict_editor() {
    $editorRole = get_role( 'editor' );
    $capabilities = array(
    'edit_others_posts',
    ...
    );
    foreach ( $capabilities as $capability ) {
    $editorRole->remove_cap( $capability );
    }
    }
    add_action( 'init', 'restrict_editor' );

    View Slide

  12. add_action( 'init', 'add_new_role' );
    function add_new_role() {
    add_role(
    'junior',
    __('Junior'),
    array(
    'read' => true,
    'edit_posts' => true,
    'delete_posts' => false,
    )
    );
    }
    Roles & Capabilities
    Roles & Capabilities

    View Slide

  13. Custom Post Types
    Custom Post Types

    View Slide

  14. Custom Post Types
    Custom Post Types
    add_action( 'init', 'create_custom_post_type' );
    function create_custom_post_type() {
    register_post_type('projects',
    array(
    'labels' => array(
    'name' => __('Projects'),
    'singular_name' => __('Projects'),
    )
    ...
    )
    );
    }

    View Slide

  15. WordPress
    WordPress
    Customization
    Customization

    View Slide

  16. Thank you!
    Thank you!
    Ioannis Karavas
    Software Engineer

    View Slide