Slide 1

Slide 1 text

Customizing WordPress Customizing WordPress Ioannis Karavas Software Engineer

Slide 2

Slide 2 text

Music Industry E-commerce Organizations Who uses WordPress?

Slide 3

Slide 3 text

WordPress is customizable WordPress is customizable

Slide 4

Slide 4 text

Filters Filters

Slide 5

Slide 5 text

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; }

Slide 6

Slide 6 text

Actions Actions

Slide 7

Slide 7 text

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 ); }

Slide 8

Slide 8 text

Child Themes Child Themes

Slide 9

Slide 9 text

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!

Slide 10

Slide 10 text

Roles & Capabilities Roles & Capabilities

Slide 11

Slide 11 text

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' );

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Custom Post Types Custom Post Types

Slide 14

Slide 14 text

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'), ) ... ) ); }

Slide 15

Slide 15 text

WordPress WordPress Customization Customization

Slide 16

Slide 16 text

Thank you! Thank you! Ioannis Karavas Software Engineer