Getting to Grips with WordPress

Size: px
Start display at page:

Download "Getting to Grips with WordPress"

Transcription

1 Getting to Grips with WordPress Part of the CMS Summit Series #CMSdays CMSdays

2 The Plan Serving things up Old Skool Install Install with style Staying fresh Making it easier Break Custom fields Plugging in Be classy Little boxes Break Showing the fields Making options Sharing your plugin It s broken Coming soon...

3 Serving things up

4 Serving things up WAMP needs unblocking

5 Configuring WAMP Starting and Stopping Services

6 Managing WAMP Localhost browsing

7 Managing WAMP phpmyadmin for Database Administration

8 Managing WAMP Where WordPress should go

9 Managing WAMP Enabling mod_rewrite

10 Managing WAMP Enabling mod_rewrite Delete the # for rewrite_module

11 Configuring MAMP Changing the PHP version

12 Configuring MAMP Changing the www root

13 Configuring MAMP Main dashboard

14 Managing MAMP

15 Creating a Database phpmyadmin

16 Old Skool Install Using the zip file Installation Help

17 Old Skool Install Using the zip file 1. Download the zip file 2. Create a database 3. Rename wp-config-sample.php to wp-config.php 4. Edit wp-config.php 5. FTP to the server 6. Hit

18 Install with style Using SVN 1. svn co 2. Create a database 3. Rename wp-config-sample.php 4. Edit wp-config.php 5. FTP to the server Don t forget the period! 6. Hit wp-admin/install.php

19 Tortoise SVN For Windows

20 Versions App For Mac

21 Demo 1 Install from SVN

22 Staying fresh Keeping current, and why I use SVN Point Releases svn up New Versions svn sw Make this the version you want

23 Demo 2 Updating from SVN

24 WordPress Installation Get started

25 WordPress Installation Access the database

26 WordPress Installation Something wrong?

27 WordPress Installation Run the install!

28 WordPress Installation Name the blog

29 WordPress Installation Remember this password

30 WordPress Installation Go to your profile

31 WordPress Installation Change your password

32 WordPress Installation Permalinks

33 Feature Tour

34 Exercise 1 Separating the app from the content

35 Making it easier Separating the app from the content Current Desired content wp-app

36 Making it easier Separating the app from the content 1. copy the folder containing WordPress [start] 2. rename the copied folder to wp-app 3. remove all files inside [start] 4. move wp-app inside [start]

37 Making it easier Separating the app from the content 1. copy the folder containing WordPress [start] 2. rename the copied folder to wp-app 3. remove all files inside [start] 4. move wp-app inside [start] 5. copy wp-app/wp-content into [start] 6. rename wp-content to something else 7. move wp-app/.htaccess to [start] 8. move wp-app/wp-config.php to [start]

38 wp-app/wp-config.php Redirecting up a level 9. Inside wp-app create a new file called wp-config.php <?php include $_SERVER['DOCUMENT_ROOT']. '/wp-config.php';?>

39 .htaccess Redirecting up a level 10. Create or update the.htaccess file in [start] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^$ /wp-app/index.php [L] RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/wp-content$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteRule ^wp-content(.*) /content/$1 [L,NC] RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_URI}!^/?wp-app.* RewriteRule ^(.*)$ /wp-app/$1 [L,NC] RewriteBase /wp-app/ RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteRule ^(.*)$ /wp-app/index.php [L,NC] </IfModule>

40 .htaccess Redirecting up a level 10. Create or update the.htaccess file in [start] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^$ /wp-app/index.php [L] RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/wp-content$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteRule ^wp-content(.*) /content/$1 [L,NC] RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_URI}!^/?wp-app.* RewriteRule ^(.*)$ /wp-app/$1 [L,NC] RewriteBase /wp-app/ RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteRule ^(.*)$ /wp-app/index.php [L,NC] </IfModule>

41 .htaccess Redirecting up a level 10. Create or update the.htaccess file in [start] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^$ /wp-app/index.php [L] RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/wp-content$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteRule ^wp-content(.*) /content/$1 [L,NC] RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_URI}!^/?wp-app.* RewriteRule ^(.*)$ /wp-app/$1 [L,NC] RewriteBase /wp-app/ RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteRule ^(.*)$ /wp-app/index.php [L,NC] </IfModule>

42 .htaccess Redirecting up a level 10. Create or update the.htaccess file in [start] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^$ /wp-app/index.php [L] RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/wp-content$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteRule ^wp-content(.*) /content/$1 [L,NC] RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_URI}!^/?wp-app.* RewriteRule ^(.*)$ /wp-app/$1 [L,NC] RewriteBase /wp-app/ RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteRule ^(.*)$ /wp-app/index.php [L,NC] </IfModule>

43 .htaccess Redirecting up a level 10. Create or update the.htaccess file in [start] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^$ /wp-app/index.php [L] RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/wp-content$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteRule ^wp-content(.*) /content/$1 [L,NC] RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_URI}!^/?wp-app.* RewriteRule ^(.*)$ /wp-app/$1 [L,NC] RewriteBase /wp-app/ RewriteCond %{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_FILENAME}!-d RewriteRule ^(.*)$ /wp-app/index.php [L,NC] </IfModule>

44 wp-config.php Telling WordPress where to find things 11. Define WP_CONTENT_DIR and WP_CONTENT_URL define( 'WP_CONTENT_DIR', dirname( FILE ). '/content' ); define( 'WP_CONTENT_URL', ' $_SERVER['HTTP_HOST']. '/content'); /** * WordPress Database Table prefix. * * You can have multiple installations in one database if you give each a unique * prefix. Only numbers, letters, and underscores please! */ $table_prefix = 'wp_'; 12. Update ABSPATH /** Absolute path to the WordPress directory. */ if (!defined('abspath') ) define('abspath', dirname( FILE ). '/wp-app/');

45 .htaccess in Windows Getting it to save.htaccess

46 Take a Break

47 Custom fields What are they?

48 Custom fields Visible vs Hidden Visible Selectable Unreliable Hidden Hidden Good for plugins Protected

49 Custom fields GUI vs Database GUI Public only Database Data is still there

50 Custom fields Limitations Free text Not unique Untidy Hidden custom fields can get duplicated

51 Plugging in The Basics Structure Single File or a Package Usage For things unrelated to a specific theme Best Practice Easily removed Avoid tattooing Use packages Include a readme

52 Exercise 2 Making a plugin

53 Plugins Basic structure tmh-portfolio tmh-portfolio.php readme.txt

54 Plugins The simplest plugin tmh-portfolio.php <?php /* Plugin Name: TMH Portfolio Plugin URI: Description: Author: Matt Harris Version: trunk Author URI: */ echo 'oh hai!';?>

55 Plugins Activate the plugin

56 Plugins Oh hai!

57 Exercise 3 Going classy

58 Be classy Classy? Wrap everything you do inside a class Automatic namespaced support Easier to protect code

59 Classes Simple class unclassed classed <?php echo 'oh hai!';?> <?php class tmh_portfolio { function construct() { echo 'oh hai!'; } } function tmh_portfolio() { $this-> construct(); } $tmh_portfolio = new tmh_portfolio();?>

60 Classes Better example unclassed, namespaced <?php add_action('admin_init', tmh_admin_init'); add_action('admin_menu', tmh_admin_menu'); function tmh_admin_init() { } function tmh_admin_main() { }?>

61 Classes Better example classed, and protected <?php if (! class_exists( tmh_portfolio )) : class tmh_portfolio { function construct() { add_action('admin_init', array($this, admin_init')); add_action('admin_menu', array($this, admin_menu')); } } function admin_init() { } function admin_menu() { } $tmh_portfolio = new tmh_portfolio(); endif;?>

62 Classes Better example classed, and protected <?php if (! class_exists( tmh_portfolio )) : class tmh_portfolio { function construct() { add_action('admin_init', array($this, admin_init')); add_action('admin_menu', array($this, admin_menu')); } } function admin_init() { } function admin_menu() { } $tmh_portfolio = new tmh_portfolio(); endif;?>

63 Exercise 4 Adding Meta Boxes

64 Add Post Default appearance

65 Add Post Default appearance

66 Adding Meta Boxes The code 1. Hook into the admin_menu action function construct() { add_action('admin_menu', array($this, 'admin_menu')); }

67 Adding Meta Boxes The code 1. Hook into the admin_menu action function construct() { add_action('admin_menu', array($this, 'admin_menu')); } 2. Create admin_menu function function admin_menu() { add_meta_box( 'tmh_portfolio_basic', ('Meta Information'), array($this, 'meta_box_basic'), 'post', 'side', 'low' ); }

68 Adding Meta Boxes The code 1. Hook into the admin_menu action function construct() { add_action('admin_menu', array($this, 'admin_menu')); } 2. Create admin_menu function function admin_menu() { add_meta_box( 'tmh_portfolio_basic', ('Meta Information'), array($this, 'meta_box_basic'), 'post', 'side', 'low' ); } 3. Create the function to render the meta box function meta_box_basic($post) { include 'meta_box_basic.php'; }

69 Adding Meta Boxes The code 4. Write the HTML to render the meta box <fieldset> <div> <label for="tmh_portfolio_client"><?php _e('client:')?></label> <input name="tmh_portfolio_client" type="text" value="<?php echo esc_attr($tmh_portfolio_client);?>" /> </div> <div> <label for="tmh_portfolio_when"><?php _e('when:')?></label> <input name="tmh_portfolio_when" type="text" value="<?php echo esc_attr($tmh_portfolio_when);?>" /> </div> <div> <label for="tmh_portfolio_tasks"><?php _e('tasks:')?></label> <textarea name="tmh_portfolio_tasks"><?php echo esc_attr($tmh_portfolio_tasks);?></textarea> <p class="howto"><?php _e('put each task or activity on a new line.');?></p> </div> </fieldset>

70 Adding Meta Boxes The code 4. Write the HTML to render the meta box <fieldset> <div> <label for="tmh_portfolio_client"><?php _e('client:')?></label> <input name="tmh_portfolio_client" type="text" value="<?php echo esc_attr($tmh_portfolio_client);?>" /> </div> <div> <label for="tmh_portfolio_when"><?php _e('when:')?></label> <input name="tmh_portfolio_when" type="text" value="<?php echo esc_attr($tmh_portfolio_when);?>" /> </div> <div> <label for="tmh_portfolio_tasks"><?php _e('tasks:')?></label> <textarea name="tmh_portfolio_tasks"><?php echo esc_attr($tmh_portfolio_tasks);?></textarea> <p class="howto"><?php _e('put each task or activity on a new line.');?></p> </div> </fieldset>

71 Adding Meta Boxes The code 4. Write the HTML to render the meta box <fieldset> <div> <label for="tmh_portfolio_client"><?php _e('client:')?></label> <input name="tmh_portfolio_client" type="text" value="<?php echo esc_attr($tmh_portfolio_client);?>" /> </div> <div> <label for="tmh_portfolio_when"><?php _e('when:')?></label> <input name="tmh_portfolio_when" type="text" value="<?php echo esc_attr($tmh_portfolio_when);?>" /> </div> <div> <label for="tmh_portfolio_tasks"><?php _e('tasks:')?></label> <textarea name="tmh_portfolio_tasks"><?php echo esc_attr($tmh_portfolio_tasks);?></textarea> <p class="howto"><?php _e('put each task or activity on a new line.');?></p> </div> </fieldset>

72 Adding Meta Boxes The result

73 Adding Meta Boxes Changing the position add_meta_box( id, title, callback, type, context, priority ); Post title priority: high Write post context: side context: normal priority: low context: advanced priority: high priority: low

74 Exercise 5 Saving the meta box values

75 Saving Meta Content The code 1. Define our fields class tmh_portfolio { var $fields = array( 'tmh_portfolio_when' => "\n", 'tmh_portfolio_client' => "\n", 'tmh_portfolio_tasks' => "\n", ); function construct() { add_action('admin_menu', array($this, 'admin_menu')); }

76 Saving Meta Content The code 2. Hook into the save_post action function construct() { add_action('admin_menu', array($this, 'admin_menu')); add_action('save_post', array($this, 'save_post'), 10, 2); } Priority Arguments

77 Saving Meta Content The code 3. Create save_post function function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

78 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

79 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

80 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

81 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

82 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

83 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

84 save_post Breaking it down function save_post($post_id, $post) { $postarr = wp_parse_args($_post, $this->fields); $postarr = sanitize_post($postarr, 'db'); $postarr = array_intersect_key($postarr, $this->fields); $diffs = array_diff($postarr, $this->fields); foreach ($diffs as $k => $v) { if (empty($v)) { delete_post_meta($post_id, "_$k"); } else { add_post_meta($post_id, "_$k", $v, true) or update_post_meta($post_id, "_$k", $v); } } }

85 Saving Meta Content The result

86 Saving Meta Content The result but...

87 Exercise 6 Displaying the meta box values

88 Displaying Meta Content The code 1. Update our meta box function function meta_box_basic($post) { foreach ($this->fields as $k => $v) { $$k = get_post_meta($post->id, "_$k", true ); } } include 'meta_box_basic.php'; Notice the $$k

89 Displaying Meta Content The result

90 Exercise 7 Removing the default custom meta box

91 Removing Meta Boxes The code 1. Hook into the admin_head action function construct() { add_action('admin_menu', array($this, 'admin_menu')); add_action('save_post', array($this, 'save_post'), 10, 2); add_action('admin_head', array($this, 'admin_head')); } 2. Create admin_head function function admin_head() { remove_meta_box('postcustom', 'post', 'normal'); remove_meta_box('postcustom', 'post', 'advanced'); }

92 Removing Meta Boxes The result

93 Default Meta Boxes The list submitdiv categorydiv postexcerpt trackbacksdiv postcustom commentstatusdiv commentsdiv slugdiv authordiv revisionsdiv Publish Categories Excerpt Send Trackbacks Custom Fields Discussion Comments Post Slug Post Author Post Revisions

94 Take a Break

95 Meta in a Theme Use the template tags the_meta(); Unordered List of visible meta $meta_value = get_post_meta($post_id, $key, $single); Gets a specific meta value and saves it to $meta_value

96 Meta in a Theme The other way

97 Exercise 8 Preparing the custom fields for use in a theme

98 Meta in a Theme The code 1. Add a posts_results filter function construct() { add_action('admin_menu', array($this, 'admin_menu')); add_action('save_post', array($this, 'save_post'), 10, 2); add_action('admin_head', array($this, 'admin_head')); add_filter('posts_results', array($this, 'posts_results')); }

99 Meta in a Theme The code 1. Add a posts_results filter function construct() { add_action('admin_menu', array($this, 'admin_menu')); add_action('save_post', array($this, 'save_post'), 10, 2); add_action('admin_head', array($this, 'admin_head')); add_filter('posts_results', array($this, 'posts_results')); } 2. Create posts_results function function posts_results($posts) { foreach ($posts as $k => $post) { $posts[$k] = $this->load_meta($post); } return $posts; }

100 Meta in a Theme The code 3. Create load_meta function function load_meta($post) { $id = $post->id; } foreach ($this->fields as $k => $v) { $post->{"$k"} = get_post_meta($id, "_$k", true ); } return $post;

101 Meta in a Theme The code 3. Create load_meta function function load_meta($post) { $id = $post->id; } foreach ($this->fields as $k => $v) { $post->{"$k"} = get_post_meta($id, "_$k", true ); } return $post;

102 Meta in a Theme The code 3. Create load_meta function function load_meta($post) { $id = $post->id; } foreach ($this->fields as $k => $v) { $post->{"$k"} = get_post_meta($id, "_$k", true ); } return $post; Database Field _tmh_portfolio_client Object Field $post->tmh_portfolio_client

103 Meta in a Theme The result

104 Meta in a Theme The result Can use this: <?php echo $post->tmh_portfolio_client;?> Instead of: <?php echo get_post_meta( get_the_id(), tmh_portfolio_client, true);?>

105 Meta in a Theme The result What if $post->tmh_portfolio_client; doesn t exist? <?php if ( isset( $post->tmh_portfolio_client ) ) echo $post->tmh_portfolio_client;?> or <?php

106 Exercise 9 Making options

107 Making Options The code 1. Hook into the admin_init action function construct() { add_action('admin_init', array($this, 'admin_init')); add_action('admin_menu', array($this, 'admin_menu')); add_action('save_post', array($this, 'save_post'), 10, 2); add_action('admin_head', array($this, 'admin_head')); }

108 Making Options The code 2. Create admin_init function function admin_init() { register_setting( 'tmh_portfolio_options', 'tmh_portfolio_options', array($this, 'options_validate') ); add_settings_section( 'tmh_portfolio_main', ('Main Settings'), array($this, 'render_main_section_text'), 'tmh_portfolio_page' ); } add_settings_field( 'meta_box_titles_format', ('Meta Box Titles Format'), array($this, 'render_meta_box_titles_format'), 'tmh_portfolio_page', 'tmh_portfolio_main' );

109 Making Options The code 2. Create admin_init function function admin_init() { register_setting( 'tmh_portfolio_options', 'tmh_portfolio_options', array($this, 'options_validate') ); add_settings_section( 'tmh_portfolio_main', ('Main Settings'), array($this, 'render_main_section_text'), 'tmh_portfolio_page' ); } add_settings_field( 'meta_box_titles_format', ('Meta Box Titles Format'), array($this, 'render_meta_box_titles_format'), 'tmh_portfolio_page', 'tmh_portfolio_main' );

110 Making Options The code 2. Create admin_init function function admin_init() { register_setting( 'tmh_portfolio_options', 'tmh_portfolio_options', array($this, 'options_validate') ); add_settings_section( 'tmh_portfolio_main', ('Main Settings'), array($this, 'render_main_section_text'), 'tmh_portfolio_page' ); } add_settings_field( 'meta_box_titles_format', ('Meta Box Titles Format'), array($this, 'render_meta_box_titles_format'), 'tmh_portfolio_page', 'tmh_portfolio_main' );

111 Making Options The code 2. Create admin_init function function admin_init() { register_setting( 'tmh_portfolio_options', 'tmh_portfolio_options', array($this, 'options_validate') ); add_settings_section( 'tmh_portfolio_main', ('Main Settings'), array($this, 'render_main_section_text'), 'tmh_portfolio_page' ); } add_settings_field( 'meta_box_titles_format', ('Meta Box Titles Format'), array($this, 'render_meta_box_titles_format'), 'tmh_portfolio_page', 'tmh_portfolio_main' );

112 Making Options The code 3. Create options_validate function function options_validate($fields) { foreach ($fields as $k => $v) { $fields[$k] = stripslashes(wp_filter_post_kses(addslashes(trim($v)))); } return $fields; } 4. Create render_main_section_text function function render_main_section_text() { echo '<p>'. ('Here you can choose the format of our meta box labels.').'</p>'; }

113 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

114 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

115 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

116 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

117 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

118 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

119 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

120 Making Options The code 5. Create render_meta_box_titles_format function function render_meta_box_titles_format() { $options = get_option('tmh_portfolio_options'); $choices = array( 'strtoupper' => ('Uppercase'), 'strtolower' => ('Lowercase'), 'ucfirst' => ('First Letter'), 'ucwords' => ('Capitalize Words'), ); $html = '<select name="tmh_portfolio_options[meta_box_titles_format]" id="tmh_portfolio_meta_box_titles_format">'; foreach ($choices as $value => $title) { $selected = $value == $options['meta_box_titles_format']? ' selected="selected"' : ''; } $html.= "<option value=\"$value\"$selected>$title</option>"; } $html.= '</select>'; echo $html;

121 Making Options The code 6. Add the options page to admin_menu function admin_menu() { add_meta_box( 'tmh_portfolio_basic', ('Meta Information'), array($this, 'meta_box_basic'), 'post', 'side', 'low' ); } add_options_page( ('Portfolio Options'), ('Portfolio'), 'manage_options', tmh_portfolio, array($this, 'options_page') );

122 Making Options The code 7. Create options_page function function options_page() { include 'options_page.php'; } 8. Create options_page.php <div class="wrap"> <h2><?php _e('portfolio Options');?></h2> <form method="post" action="options.php"> <?php settings_fields('tmh_portfolio_options'); do_settings_sections('tmh_portfolio_page');?> <p class="submit"> <input type="submit" name="submit" class="button-primary" value="save Changes" /> </p> </form> </div>

123 Making Options The result

124 Use the option The code 1. Update meta_box_basic function $options = get_option('tmh_portfolio_options'); $func = $options['meta_box_titles_format']; include 'meta_box_basic.php'; 2. Update meta_box_basic.php <fieldset> <div> <label for="tmh_portfolio_client"><?php _e($func('client:'))?></label> <input name="tmh_portfolio_client" type="text" value="<?php echo esc_attr($tmh_portfolio_client);?>" /> </div>

125 Use the option The result

126 Sharing your Plugin Putting your plugin into WordPress extend

127 Sharing your Plugin Putting your plugin into WordPress extend Sign up for a WordPress.org account

128 Sharing your Plugin Putting your plugin into WordPress extend Sign up for a WordPress.org account Add Your Plugin

129 Sharing your Plugin Putting your plugin into WordPress extend Sign up for a WordPress.org account Add Your Plugin Wait for a Reply

130 Sharing your Plugin Putting your plugin into WordPress extend Sign up for a WordPress.org account Add Your Plugin Wait for a Reply Whilst waiting create a Readme

131 Exercise 10 Creating a plugin readme

132 Plugin Readme Basic format === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

133 Plugin Readme Contributors === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

134 Plugin Readme Tags === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

135 Plugin Readme Stable version === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

136 Plugin Readme Version you support from === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

137 Plugin Readme Version you support to === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

138 Plugin Readme Extract === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

139 Plugin Readme Description === My Portfolio === Contributors: themattharris Tags: portfolio, custom meta Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing portfolio specific information. == Description == Adds extra fields to a post for storing portfolio specific information.

140 Plugin Readme Better Example === hnews for WordPress === Contributors: themattharris Tags: hnews, microformats, news, journalism Stable tag: trunk Requires at least: 2.8 Tested up to: 3.0 Adds extra fields to a post for storing hnews specific information. Includes a settings page for adding default values for the fields. == Description == Adds extra fields to a post for storing hnews specific information. Includes a settings page for adding default values for the fields. This version is the development trunk and is still in Alpha. It is not fully tested for production use yet. == Frequently Asked Questions == = How do I contribute? = Whilst the code for the plugin is hosted on [WordPress Plugins SVN]( plugins.svn.wordpress.org/hnews-for-wordpress/) the development takes place on [GitHub]( If you wish to contribute to the project you can fork the code from there or give feedback using the Issues and Wiki on there.

141 Plugin Readme Better example

142 It s broken Don t Panic

143 It s broken Don t Panic 1. Remove the plugin 2. Turn on debugging 3. Put the plugin back 4. Try and activate it

144 It s broken Don t Panic 1. Remove the plugin 2. Turn on debugging 3. Put the plugin back 4. Comment out all of your hooks 5. Try and activate it 6. Deactivate the plugin 7. Add a hook back in 8. Try and activate it 9. Repeat from 6 until it breaks

145 Coming soon... WordPress 3, what can I expect?

146 Coming soon... WordPress 3, what can I expect? Network (MultiSite)

147 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types

148 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus

149 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme

150 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme Custom Backgrounds

151 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme Custom Backgrounds Re-namable first account

152 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme Custom Backgrounds Re-namable first account Settings API Error Support

153 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme Custom Backgrounds Re-namable first account Settings API Error Support Custom death

154 Coming soon... WordPress 3, what can I expect? Network (MultiSite) Custom Post Types Custom Menus New Default Theme Custom Backgrounds Re-namable first account Settings API Error Support Custom death Dreamweaver CS5

155 Some other stuff

156 What s next? Google Summer of Code WordPress Codex

157 Questions?

158 Thank You! Workshop Slides and Files Reaching

159 Licensed as Attribution-Noncommercial-Share Alike 3.0 Unported Images All images used in this presentation are copyright Matt Harris, all rights reserved and may only be reused as the slides in this presentation.

Install WordPress 3.X In Multi Blog / Multi user mode On localhost

Install WordPress 3.X In Multi Blog / Multi user mode On localhost Install WordPress 3.X In Multi Blog / Multi user mode On localhost In this tutorial, we will cover how to setup WordPress as a Multi User /Multi Blog. We ll start by downloading and installing a new version

More information

Creating a Network. WordPress 3.1 (and up)

Creating a Network. WordPress 3.1 (and up) Creating a Network in WordPress 3.1 (and up) A comprehensive guide to setting up multisite by Andrea Rennick http://wpebooks.com Introduction Hello there intrepid reader. This here guide is to explain

More information

WP EBOOKS Creating A WordPress Network

WP EBOOKS Creating A WordPress Network WP EBOOKS Creating A WordPress Network The Complete Guide to Setting Up WordPress Multisite 1 WP EBOOKS Creating A WordPress Network The Complete Guide to Setting Up WordPress Multisite 2 Creating a WordPress

More information

if (WP_DEBUG) E_ALL 'on'; }

if (WP_DEBUG) E_ALL 'on'; } BAVC WordPress Resources http://codex.wordpress.org/ Lab Resources MAMP Git Aptana Studio 3 Firefox with Firebug Outline I. WordPress installation (Installing_WordPress) A. Requirements 1. PHP >= version

More information

Stirred not Shaken. WordCamp Providence

Stirred not Shaken. WordCamp Providence WordPress Plugin Development Stirred not Shaken Jonathan Desrosiers Twitter: @Desrosj WordCamp Providence 1 Break the Ice Twitter: @Desrosj From Dartmouth, Massachusetts Love Sports (Baseball & Hockey

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. WordPress

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. WordPress About the Tutorial WordPress is an open source Content Management System (CMS), which allows the users to build dynamic websites and blog. WordPress is the most popular blogging system on the web and allows

More information

Let's have a look at the normal Joomla! URLs:

Let's have a look at the normal Joomla! URLs: Joomla! v 1.5 Search Engine Friendly URLs (SEF URLs) A. What are SEF URLs? SEF means search engine friendly. Websites are considered search engine friendly if the pages can easily be found by search engines.

More information

Ace Corporate Documentation

Ace Corporate Documentation Ace Corporate Documentation Introduction Welcome To Ace Corporate! We would like to thank you for donwloading Ace Corporate, Business WordPress theme. It is the lite version of Ace Corporate Pro. Before

More information

Smart Links for SEO. Miva Module for Miva Merchant 5. Contents

Smart Links for SEO. Miva Module for Miva Merchant 5. Contents Smart Links for SEO user manual Miva Module for Miva Merchant 5 Contents Introduction Requirements Installation Rewrite Rules Template Customization Best Practices Support copyright 2009 by NetBlazon LLC

More information

How To Clone, Backup & Move Your WordPress Blog! Step By Step Guide by Marian Krajcovic

How To Clone, Backup & Move Your WordPress Blog! Step By Step Guide by Marian Krajcovic How To Clone, Backup & Move Your WordPress Blog! Step By Step Guide by Marian Krajcovic 2010 Marian Krajcovic You may NOT resell or giveaway this ebook! 1 If you have many WordPress blogs and especially

More information

WordPress Maintenance For Beginners

WordPress Maintenance For Beginners WordPress Maintenance For Beginners Content Pages, posts, users, links, widgets, menus, comments, products, etc. Media Images, documents, videos, music, etc. Plugins Function, features, and facilities.

More information

Oceanica Theme Documentation

Oceanica Theme Documentation Oceanica Theme Documentation Updated on December 29, 2017 Installation Import sample data Import sample data from xml file. Import sample data from.sql file. Set up the front page Edit front page Site

More information

SO, ARE YOU READY? HERE WE GO:

SO, ARE YOU READY? HERE WE GO: Date: 28/09/2012 Procedure: How To Move WordPress To A New Server Or Host Source: LINK Permalink: LINK Created by: HeelpBook Staff Document Version: 1.0 HOW TO MOVE WORDPRESS TO A NEW SERVER OR HOST It

More information

The Villages Wordpress User Group Basic WordPress Concepts

The Villages Wordpress User Group Basic WordPress Concepts The Villages Wordpress User Group Basic WordPress Concepts Jim Rietz jrietz@mac.com (352) 205-1555 Meeting 3rd Tuesday 8-11:50 each month Paradise Recreation Center Marilyn Monroe Room TVWUG.com TVWUG

More information

WORDPRESS SECURITY HOUSTON WORDPRESS MEETUP.

WORDPRESS SECURITY HOUSTON WORDPRESS MEETUP. WORDPRESS SECURITY HOUSTON WORDPRESS MEETUP SCHEDULE 11:00 NETWORKING 11:30 SECURITY DISCUSSION 12:30 NETWORKING AGENDA Why WordPress Security is Important The Role of Web Hosting The Role of Core, Themes,

More information

28 JANUARY, Updating appearances. WordPress. Kristine Aa. Kristoffersen, based on slides by Tuva Solstad and Anne Tjørhom Frick

28 JANUARY, Updating appearances. WordPress. Kristine Aa. Kristoffersen, based on slides by Tuva Solstad and Anne Tjørhom Frick Updating appearances WordPress Kristine Aa. Kristoffersen, based on slides by Tuva Solstad and Anne Tjørhom Frick Agenda Brief talk about assessments Plan for WordPress lessons Installing themes Installing

More information

How To Redirect A Webpage Cheat Sheet

How To Redirect A Webpage Cheat Sheet How To Redirect A Webpage Cheat Sheet Need the code for your htaccess file? Check out our htaccess redirect generator here! Using Wordpress The easiest way to redirect a webpage on Wordpress is to use

More information

WordPress Maintenance For Beginners

WordPress Maintenance For Beginners WordPress Maintenance For Beginners Content Pages, posts, users, links, widgets, menus, comments, products, etc. Media Images, documents, videos, music, etc. Plugins Function, features, and facilities.

More information

Setting up Omeka on IU s Webserve

Setting up Omeka on IU s Webserve Setting up Omeka on IU s Webserve Request Webserve Account Consult the "Getting Started" document before you request a Webserve account. The following steps are required: 1. Request a Group Account 1.

More information

Manually Using Cpanel

Manually Using Cpanel How To Install Plugin Joomla 2.5 Template Manually Using Cpanel From here you can install your Templates, Plugins, Modules, Components and Simply select the template folder on your PC and upload it to

More information

Configuring WordPress for Multiple Environments

Configuring WordPress for Multiple Environments Configuring WordPress for Multiple Environments Who am I? Jason McCreary jmccreary@viastudio.com @gonedark Louisville, KY Production Lead at VIA Studio Web Developer since 1999 PHP since version 3 Active

More information

micro-framework Documentation

micro-framework Documentation micro-framework Documentation Release 2.0.2 phpmv Apr 03, 2018 Installation configuration 1 Ubiquity-devtools installation 1 2 Project creation 3 3 Project configuration 5 4 Devtools usage 9 5 URLs 11

More information

Troubleshooting Guide for Migrating WordPress Installations

Troubleshooting Guide for Migrating WordPress Installations by Leigh Cotnoir, 2016 http://learn.leighcotnoir.com Troubleshooting Guide for Migrating WordPress Installations When you are trying to migrate a WordPress website from one server to another, you might

More information

Static Webpage Development

Static Webpage Development Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction

More information

WORDPRESS PLUGIN DEVELOPMENT

WORDPRESS PLUGIN DEVELOPMENT WORDPRESS PLUGIN DEVELOPMENT What Is a Plugin? WordPress plugins are apps that allow you to add new features and functionality to your WordPress website. Exactly the same way as apps do for your smartphone.

More information

Bluehost and WordPress

Bluehost and WordPress Bluehost and WordPress Your Bluehost account allows you to install a self-hosted Wordpress installation. We will be doing this, and you will be customizing it for your final project. Using WordPress 1.

More information

A Quick Introduction to the Genesis Framework for WordPress. How to Install the Genesis Framework (and a Child Theme)

A Quick Introduction to the Genesis Framework for WordPress. How to Install the Genesis Framework (and a Child Theme) Table of Contents A Quick Introduction to the Genesis Framework for WordPress Introduction to the Genesis Framework... 5 1.1 What's a Framework?... 5 1.2 What's a Child Theme?... 5 1.3 Theme Files... 5

More information

WORDPRESS 101 A PRIMER JOHN WIEGAND

WORDPRESS 101 A PRIMER JOHN WIEGAND WORDPRESS 101 A PRIMER JOHN WIEGAND CONTENTS Starters... 2 Users... 2 Settings... 3 Media... 6 Pages... 7 Posts... 7 Comments... 7 Design... 8 Themes... 8 Menus... 9 Posts... 11 Plugins... 11 To find a

More information

Reviewer WordPress Plugin

Reviewer WordPress Plugin Reviewer WordPress Plugin Reviews and Comparison Tables for Your Posts Version: 2.3.0 - by Michele Ivani - evographics.net This is a how-to guide to install your plugin copy. If you have any questions

More information

Collage II Tips and Tricks

Collage II Tips and Tricks Collage II Tips and Tricks Peter Mosinskis, Supervisor of Web Services, CSUCI Table of Contents Introduction... 1 Copy and Paste from Word... 2 Option 1. Word Notepad Collage... 2 Option 2. Word Dreamweaver

More information

About Me. Name: Jonathan Brown. Job: Full Stack Web Developer. Experience: Almost 3 years of experience in WordPress development

About Me. Name: Jonathan Brown. Job: Full Stack Web Developer. Experience: Almost 3 years of experience in WordPress development About Me Name: Jonathan Brown Job: Full Stack Web Developer Experience: Almost 3 years of experience in WordPress development Getting started With the REST API and Angular JS Folder Structure How to setup

More information

Installing WordPress CMS

Installing WordPress CMS Installing WordPress CMS Extract the contents of the wordpress zip file to D:/public_html/wordpress folder as shown in diagram 1. D:/public_html/wordpress is a virtual domain controlled by Apache Web server

More information

Make your IBM i Sizzle

Make your IBM i Sizzle Make your IBM i Sizzle with WordPress seidengroup.com Seiden Group and Club Seiden Alan is a leader and expert in PHP on IBM i; leader, Zend s PHP Toolkit for IBM i; and Performance guru of PHP on IBM

More information

5. A small dialog window appears; enter a new password twice (this is different from Dori!) and hit Go.

5. A small dialog window appears; enter a new password twice (this is different from Dori!) and hit Go. Installing Wordpress from JMA Lab to JMA Server 1. Take note these instructions are streamlined for the JMA lab they can t be performed in this fashion from home! 2. Wordpress is a database driven web

More information

Manually Using Cpanel

Manually Using Cpanel How To Install Module Joomla 2.5 Template Manually Using Cpanel In this tutorial, we will show you how to manually install Joomla 2.5. At the time of this Now that you have download joomla, upload the

More information

Table of Contents. Introduction. Getting Started. The Dashboard

Table of Contents. Introduction. Getting Started. The Dashboard Table of Contents Introduction What Is WordPress?...3 Who Uses WordPress?...5 Why Use WordPress?...6 Getting Started Requirements..13 Installation 14 The Dashboard Dashboard Overview 20 Navigation 26 Quick

More information

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148 Index Numbers & Symbols (angle brackets), in HTML, 47 : (colon), in CSS, 96 {} (curly brackets), in CSS, 75, 96. (dot), in CSS, 89, 102 # (hash mark), in CSS, 87 88, 99 % (percent) font size, in CSS,

More information

Dammit Jim, I m a Mac Admin, not a Web Developer

Dammit Jim, I m a Mac Admin, not a Web Developer Dammit Jim, I m a Mac Admin, not a Web Developer WordPress Basics for Mac Admins PSU Mac Admins Conference July 11, 2018 Tiffany Bridge Baxbridge Digital 1 WordPress Bridge Wi-Fi Bridge Who am I? The Best

More information

USER MANUAL. SEO Hub TABLE OF CONTENTS. Version: 0.1.1

USER MANUAL. SEO Hub TABLE OF CONTENTS. Version: 0.1.1 USER MANUAL TABLE OF CONTENTS Introduction... 1 Benefits of SEO Hub... 1 Installation& Activation... 2 Installation Steps... 2 Extension Activation... 4 How it Works?... 5 Back End Configuration... 5 Points

More information

web.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.

web.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. web.py Tutorial Tom Kelliher, CS 317 1 Acknowledgment This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. 2 Starting So you know Python and want to make

More information

Introduction to WordPress Creation and management software for blogs & websites

Introduction to WordPress Creation and management software for blogs & websites Introduction to WordPress Creation and management software for blogs & websites 1 Who is WordPress? Originally written by Matt Mullenweg in 2003, based on B2 Trademark is owned by Automattic Automattic

More information

Documentation:Travel Company WordPress Theme

Documentation:Travel Company WordPress Theme Documentation:Travel Company WordPress Theme Install Travel Company WordPress Theme within a few minutes. Travel Company is a Travel and tour WordPress Theme It s fully responsive with bootstrap framework,

More information

RPG & PHP REST SERVICES WITH APIGILITY. Chuk Shirley Sabel Steel Service Club Seiden

RPG & PHP REST SERVICES WITH APIGILITY. Chuk Shirley Sabel Steel Service Club Seiden RPG & PHP REST SERVICES WITH APIGILITY Chuk Shirley Sabel Steel Service Club Seiden Senior Software Engineer Founder and Owner Subject Matter Expert 2015 Innovation Award Winner @ChukShirley chukshirley@gmail.com

More information

Villagio WordPress Theme Documentation

Villagio WordPress Theme Documentation Villagio WordPress Theme Documentation Updated on April 11, 2018 Installation Import sample data Import sample data from xml file Import sample data from.sql file Set up the front page Edit front page

More information

Keni Ren Lab for wtfi-17 Play with WordPress

Keni Ren Lab for wtfi-17 Play with WordPress Lab for wtfi-17 Play with WordPress Objective In this lab you will build a website using Content Management System (CMS). After the lab you should be able to use WordPress as CMS to easily create and maintain

More information

# Fix the issue:.xlsx and.docx are being saved as a zip file in Internet explorer

# Fix the issue:.xlsx and.docx are being saved as a zip file in Internet explorer Apache/PHP/Drupal settings: Fix the issue:.xlsx and.docx are being saved as a zip file in Internet explorer AddType application/vnd.openxmlformats.docx.pptx.xlsx.xltx. xltm.dotx.potx.ppsx BrowserMatch

More information

HOW TO USE WORDPRESS TO BUILD A WEBSITE A STEP-BY-STEP GUIDE

HOW TO USE WORDPRESS TO BUILD A WEBSITE A STEP-BY-STEP GUIDE HOW TO USE WORDPRESS TO BUILD A WEBSITE A STEP-BY-STEP GUIDE YOUR WEBSITE How to login Go to your website and add /wp-admin: www.palondoncourse.co.uk/xxxxxxxxx/wp-admin This will bring up the login screen.

More information

Conductor Plugin. Pre-release User Guide slocumthemes.com

Conductor Plugin. Pre-release User Guide slocumthemes.com Conductor Plugin Pre-release User Guide 6.26.14 slocumthemes.com 1 Table of contents Table of contents Introduction How to install Conductor Getting started with Conductor What is a layout? What is a content

More information

CakePHP. Getting ready. Downloading CakePHP. Now that you have PHP installed let s create a place in htdocs for your CakePHP development:

CakePHP. Getting ready. Downloading CakePHP. Now that you have PHP installed let s create a place in htdocs for your CakePHP development: CakePHP Getting ready Now that you have PHP installed let s create a place in htdocs for your CakePHP development: [tblgrant@silo htdocs]$ pwd /u/tblgrant/apache/htdocs [tblgrant@silo htdocs]$ mkdir cakewalks

More information

Roxen Content Provider

Roxen Content Provider Roxen Content Provider Generation 3 Templates Purpose This workbook is designed to provide a training and reference tool for placing University of Alaska information on the World Wide Web (WWW) using the

More information

What to shove up your.htaccess

What to shove up your.htaccess What to shove up your.htaccess Simon Bragg http://sibra.co.uk Cambridge Wordpress Meetup August 2018 The.htaccess file.htaccess files enable: Configuration changes to directory and sub-directory; Without

More information

Form Processing in PHP

Form Processing in PHP Form Processing in PHP Forms Forms are special components which allow your site visitors to supply various information on the HTML page. We have previously talked about creating HTML forms. Forms typically

More information

Http Error Code 403 Forbidden Dreamweaver Mysql

Http Error Code 403 Forbidden Dreamweaver Mysql Http Error Code 403 Forbidden Dreamweaver Mysql Dreamweaver Database Http Error Code 403 Forbidden 오류 403 Forbidden Adobe Systems Inc. Adobe Dreamweaver. 459. Dreamweaver Error 1045 오류. They can range

More information

Desire2Learn eportfolio

Desire2Learn eportfolio This training guide will provide you with the skills to create and manage an online repository for storing your digital artefacts and experiences. can be used by students and academics alike, to record

More information

0. Introduction On-demand. Manual Backups Full Backup Custom Backup Store Your Data Only Exclude Folders.

0. Introduction On-demand. Manual Backups Full Backup Custom Backup Store Your Data Only Exclude Folders. Backup & Restore 0. Introduction..2 1. On-demand. Manual Backups..3 1.1 Full Backup...3 1.2 Custom Backup 5 1.2.1 Store Your Data Only...5 1.2.2 Exclude Folders.6 1.3 Restore Your Backup..7 2. On Schedule.

More information

Documentation of Woocommerce Login / Sign up Premium. Installation of Woocommerce Login / Sign up Premium

Documentation of Woocommerce Login / Sign up Premium. Installation of Woocommerce Login / Sign up Premium Documentation of Woocommerce Login / Sign up Premium Installation of Woocommerce Login / Sign up Premium Installation Install Word Press from http://codex.wordpress.org/installing_wordpress. Upload via

More information

ADOBE DREAMWEAVER CS4 BASICS

ADOBE DREAMWEAVER CS4 BASICS ADOBE DREAMWEAVER CS4 BASICS Dreamweaver CS4 2 This tutorial focuses on the basic steps involved in creating an attractive, functional website. In using this tutorial you will learn to design a site layout,

More information

For more info on Cloud9 see their documentation:

For more info on Cloud9 see their documentation: Intro to Wordpress Cloud 9 - http://c9.io With the free C9 account you have limited space and only 1 private project. Pay attention to your memory, cpu and disk usage meter at the top of the screen. For

More information

Documentation Module: Magento products integration for WordPress Version: 1.0.0

Documentation Module: Magento products integration for WordPress Version: 1.0.0 Documentation Module: Magento products integration for WordPress Version: 1.0.0 Table of Contents Documentation... 1 Magento... 1 Installation... 1 Configuration... 1 WordPress... 3 Installation... 3 Configuration...

More information

Broker. Business and Finance WordPress Theme. Documentation. Made by CommerceGurus

Broker. Business and Finance WordPress Theme. Documentation. Made by CommerceGurus Broker Business and Finance WordPress Theme Documentation Made by CommerceGurus www.commercegurus.com Video Tutorial Don t like reading documentation? Nah either do we :) Check out our install video https://youtu.be/9h6cneefuis

More information

How to create a secure WordPress install v1.1

How to create a secure WordPress install v1.1 Table of Contents: Table of Contents:... 1 Introduction... 2 Installing WordPress... 2 Accessing your WordPress tables... 2 Changing your WordPress Table Prefix... 3 Before Installation... 3 Manually Change...

More information

Creating E-Portfolios Using blogs.rice.edu Center for the Study of Languages

Creating E-Portfolios Using blogs.rice.edu Center for the Study of Languages Creating E-Portfolios Using blogs.rice.edu Center for the Study of Languages You re going to create your own e-portfolio to show off the hard work you have done in your language classes at Rice University.

More information

USER MANUAL. SalesPort Salesforce Customer Portal for WordPress (Lightning Mode) TABLE OF CONTENTS. Version: 3.1.0

USER MANUAL. SalesPort Salesforce Customer Portal for WordPress (Lightning Mode) TABLE OF CONTENTS. Version: 3.1.0 USER MANUAL TABLE OF CONTENTS Introduction...1 Benefits of Customer Portal...1 Prerequisites...1 Installation...2 Salesforce App Installation... 2 Salesforce Lightning... 2 WordPress Manual Plug-in installation...

More information

Bitnami Coppermine for Huawei Enterprise Cloud

Bitnami Coppermine for Huawei Enterprise Cloud Bitnami Coppermine for Huawei Enterprise Cloud Description Coppermine is a multi-purpose, full-featured web picture gallery. It includes user management, private galleries, automatic thumbnail creation,

More information

The left menu is very flexible, allowing you to get to administrations screens with fewer clicks and faster load times.

The left menu is very flexible, allowing you to get to administrations screens with fewer clicks and faster load times. 12 Menu, Modules and Setting of Wordpress.com Collapse, Hide, Icons, Menu, Menus The left menu is very flexible, allowing you to get to administrations screens with fewer clicks and faster load times.

More information

Somatis Website Maintenance User's Manual

Somatis Website Maintenance User's Manual Somatis Website Maintenance User's Manual Somatis Web and Data Services Team 3 Name Jordan Padams Roles All 4/15/13 Version History Date Author Version Changes made Rationale 04/09/13 JP 1.0 Initial version

More information

LUXWINE theme documentation

LUXWINE theme documentation LUXWINE theme documentation Introduction Thank you for purchasing my theme. If you have any questions that are beyond the scope of this help file, please feel free to email via my user page contact form

More information

Imagery International website manual

Imagery International website manual Imagery International website manual Prepared for: Imagery International Prepared by: Jenn de la Fuente Rosebud Designs http://www.jrosebud.com/designs designs@jrosebud.com 916.538.2133 A brief introduction

More information

Surface Documentation

Surface Documentation Surface Documentation A fully responsive magazine and blogging WordPress theme credit... Surface is a fully responsive magazine and blogging WordPress theme, built in a timeless and dynamic style. Surface

More information

Adobe Dreamweaver CS5 Tutorial

Adobe Dreamweaver CS5 Tutorial Adobe Dreamweaver CS5 Tutorial GETTING STARTED This tutorial focuses on the basic steps involved in creating an attractive, functional website. In using this tutorial you will learn to design a site layout,

More information

WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital

WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital This WordPress tutorial for beginners (find the PDF at the bottom of this post) will quickly introduce you to every core WordPress

More information

ADRION PROJECT WEBSITES USER S MANUAL

ADRION PROJECT WEBSITES USER S MANUAL ADRION PROJECT WEBSITES USER S MANUAL September 2018 Summary 1. The ADRION Project Website... 3 2. Content instructions... 3 3. Contacts for technical assistance... 3 4. Login... 3 5. Editable contents...

More information

WordPress Survival Skills for the Healthcare Marketer

WordPress Survival Skills for the Healthcare Marketer WordPress Survival Skills for the Healthcare Marketer WordPress Usage in Healthcare 29.9% Use WordPress 62.5% Use alongside another CMS Source: Geonetric & ehealthcare Strategy & Trends 2018 Healthcare

More information

WordPres for Beginners, Easy as 1-2-3!

WordPres for Beginners, Easy as 1-2-3! WPBrix & WordPressNinja.com present: WordPres for Beginners, Easy as 1-2-3! FREE Beta edtion - v 0.3 - covering WordPress 3.4 To download the most recent version of this guide, please visit: www.wpbrix.com/wordpress-for-beginners-tutorial/

More information

Web development using PHP & MySQL with HTML5, CSS, JavaScript

Web development using PHP & MySQL with HTML5, CSS, JavaScript Web development using PHP & MySQL with HTML5, CSS, JavaScript Static Webpage Development Introduction to web Browser Website Webpage Content of webpage Static vs dynamic webpage Technologies to create

More information

System Guide

System Guide http://www.bambooinvoice.org System Guide BambooInvoice is free open-source invoicing software intended for small businesses and independent contractors. Our number one priorities are ease of use, user-interface,

More information

WEBSITE INSTRUCTIONS. Table of Contents

WEBSITE INSTRUCTIONS. Table of Contents WEBSITE INSTRUCTIONS Table of Contents 1. How to edit your website 2. Kigo Plugin 2.1. Initial Setup 2.2. Data sync 2.3. General 2.4. Property & Search Settings 2.5. Slideshow 2.6. Take me live 2.7. Advanced

More information

CIT 590 Homework 5 HTML Resumes

CIT 590 Homework 5 HTML Resumes CIT 590 Homework 5 HTML Resumes Purposes of this assignment Reading from and writing to files Scraping information from a text file Basic HTML usage General problem specification A website is made up of

More information

SALIENT USER GUIDE. 1 Page 1

SALIENT USER GUIDE. 1 Page 1 SALIENT USER GUIDE This guide provides instructions for installation, help on getting started and extensive documentation of features. It is recommended you read it thoroughly to fully leverage the theme's

More information

Migration Tool. User Guide. SHOPIFY to MAGENTO. Copyright 2014 LitExtension.com. All Rights Reserved.

Migration Tool. User Guide. SHOPIFY to MAGENTO. Copyright 2014 LitExtension.com. All Rights Reserved. SHOPIFY to MAGENTO Migration Tool User Guide Copyright 2014 LitExtension.com. All Rights Reserved. Shopify to Magento Migration Tool: User Guide Page 1 Contents 1. Preparation... 3 2. Set-up... 3 3. Set-up...

More information

Get in Touch Module 1 - Core PHP XHTML

Get in Touch Module 1 - Core PHP XHTML PHP/MYSQL (Basic + Advanced) Web Technologies Module 1 - Core PHP XHTML What is HTML? Use of HTML. Difference between HTML, XHTML and DHTML. Basic HTML tags. Creating Forms with HTML. Understanding Web

More information

This presentation will show you how to create a page in a group eportfolio.

This presentation will show you how to create a page in a group eportfolio. This presentation will show you how to create a page in a group eportfolio. 1 If you are using your eportfolio for presenting group work, you will need to create a group eportfolio page, which all the

More information

Reviewer Plugin. Ultimate Reviews & User Ratings. Version Author: Michele Ivani Reviewer Plugin v. 3.6.

Reviewer Plugin. Ultimate Reviews & User Ratings. Version Author: Michele Ivani Reviewer Plugin v. 3.6. Reviewer Plugin Ultimate Reviews & User Ratings Version 3.6.0 Author: Michele Ivani Twitter: @Michele_Ivani Reviewer Plugin v. 3.6.0 1 di 15 Index # Getting started 3 Install the plugin 3 Installation

More information

How To Install Modules Joomla 2.5 On Wamp Server 2.1

How To Install Modules Joomla 2.5 On Wamp Server 2.1 How To Install Modules Joomla 2.5 On Wamp Server 2.1 2.1 Set up a Development Location, 2.2 Assess Each Extension, 2.3 Going to Joomla! A local device via WAMP, MAMP, LAMP, XAMPP. It is very simple to

More information

Bitnami MediaWiki for Huawei Enterprise Cloud

Bitnami MediaWiki for Huawei Enterprise Cloud Bitnami MediaWiki for Huawei Enterprise Cloud Description MediaWiki is a wiki package originally written for Wikipedia. MediaWiki is an extremely powerful, scalable software and a feature-rich wiki implementation.

More information

Leveraging the Library: Sci- Fi, Storytelling, and New Media Ignite Student Interest in Science

Leveraging the Library: Sci- Fi, Storytelling, and New Media Ignite Student Interest in Science Leveraging the Library: Sci- Fi, Storytelling, and New Media Ignite Student Interest in Science For more information, please contact Drs. Mega Subramaniam at mmsubram@umd.edu or June Ahn at juneahn@umd.edu.

More information

Kinetika. Help Guide

Kinetika. Help Guide Kinetika Help Guide 1 Hope you enjoy Kinetika theme! 3 Table of Contents Important Links 6 Theme Options - Setting Up Logo 26 Cover Photos 44 Applying Revolution Slider Slides 71 Important Notes 7 Logo

More information

Rocket Theme. User Guide

Rocket Theme. User Guide Rocket Theme User Guide This user guide explains all main features and tricks of multifunctional Rocket WordPress Theme. This information will make your work with the theme even easier and more effective.

More information

COPYRIGHTED MATERIAL. Index

COPYRIGHTED MATERIAL. Index A account management, 25 Add Media window, 116 117, 124 125 Add New Post panel, 82 90 Admin Bar, 20, 24 25, 57 Administrator user, 242 AdSense, Google, 5, 266, 268 269 advertisements affiliate ads, 5,

More information

1) WordPress, Live project, This will taught by trainer. 2) Assignment project in WordPress: This is done by student while giving training.

1) WordPress, Live project, This will taught by trainer. 2) Assignment project in WordPress: This is done by student while giving training. Website: http://www.webdesignersmalaysia.com/ Contact person: Ranjan Moble/Whatsapp: 91-09032803895 Malaysia Email: info@webdesignersmalaysia.com Skype: Purnendu_ranjan Course name: Wordpress Training

More information

GeekLove. An Elegant WordPress Wedding Theme. Thanks for purchasing a theme from Codestag, you re awesome!

GeekLove. An Elegant WordPress Wedding Theme. Thanks for purchasing a theme from Codestag, you re awesome! GeekLove An Elegant WordPress Wedding Theme Thanks for purchasing a theme from Codestag, you re awesome! In this document we will cover the installation and use of this theme. If you have any questions

More information

Developing Online Databases and Serving Biological Research Data

Developing Online Databases and Serving Biological Research Data Developing Online Databases and Serving Biological Research Data 1 Last Time HTML Hypertext Markup Language Used to build web pages Static, and can't change the way it presents itself based off of user

More information

Startup Guide. Version 2.3.7

Startup Guide. Version 2.3.7 Startup Guide Version 2.3.7 Installation and initial setup Your welcome email included a link to download the ORBTR plugin. Save the software to your hard drive and log into the admin panel of your WordPress

More information

SuprCloakr v1.2s. Documentation. Author: tech_09

SuprCloakr v1.2s. Documentation. Author: tech_09 SuprCloakr v1.2s Documentation Author: tech_09 http://www.suprcloakr.com Contents Installation... 3 Global settings... 4 Creating a campaign... 5 Cloak what?... 5 Cloak who?... 6 Cloak How?... 7 Installation

More information

User authentication, passwords

User authentication, passwords User authentication, passwords User Authentication Nowadays most internet applications are available only for registered (paying) users How do we restrict access to our website only to privileged users?

More information

WordPress 2.7 Basic User Documentation

WordPress 2.7 Basic User Documentation WordPress 2.7 Basic User Documentation Author: Jess Planck http://funroe.net Last Updated: 01/17/2009 08:22:00 This document is licensed under the Attribution-ShareAlike 3.0 Unported license, available

More information

Princess Nourah bint Abdulrahman University. Computer Sciences Department

Princess Nourah bint Abdulrahman University. Computer Sciences Department Princess Nourah bint Abdulrahman University Computer Sciences Department 1 And use http://www.w3schools.com/ PHP Part 3 Objectives Creating a new MySQL Database using Create & Check connection with Database

More information

This chapter introduces you to the multisite feature that s built into the

This chapter introduces you to the multisite feature that s built into the Chapter 1: An Introduction to Multiple Sites In This Chapter Discovering where multiple sites began Exploring what you can do with multiple sites Configuring your web server This chapter introduces you

More information

Logging Into Your Site

Logging Into Your Site This training document is meant as a step-by-step guide to creating and delivering a UW-Madison site in the current UW-Madison theme. In this training class, you will learn how to log in to access your

More information

Bitnami Dolibarr for Huawei Enterprise Cloud

Bitnami Dolibarr for Huawei Enterprise Cloud Bitnami Dolibarr for Huawei Enterprise Cloud Description Dolibarr is an open source, free software package for small and medium companies, foundations or freelancers. It includes different features for

More information