<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>wordpress tutorial &#8211; Cloud Nine Apps</title>
	<atom:link href="https://cloudnineapps.com/tag/wordpress-tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudnineapps.com</link>
	<description>Simplifying Technology</description>
	<lastBuildDate>Sat, 20 Apr 2019 14:11:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4.14</generator>

<image>
	<url>https://i2.wp.com/cloudnineapps.com/wp-content/uploads/cropped-CloudNineApps_favicon-2.png?fit=32%2C32&#038;ssl=1</url>
	<title>wordpress tutorial &#8211; Cloud Nine Apps</title>
	<link>https://cloudnineapps.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">136749396</site>	<item>
		<title>Getting Started With WordPress for Developers</title>
		<link>https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/</link>
					<comments>https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/#respond</comments>
		
		<dc:creator><![CDATA[Nitin Patil]]></dc:creator>
		<pubDate>Sun, 04 Mar 2018 05:02:25 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress tutorial]]></category>
		<guid isPermaLink="false">https://cloudnineapps.com/?p=495</guid>

					<description><![CDATA[<p>Getting Started With WordPress for Developers and Webmasters Introduction As I embarked on my journey with WordPress, I came across several great resources on the Net that covered different aspects of the WordPress setup. It is quite evident that it&#8217;s&#8230;&#160;<a href="https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/" class="more-link">Read More</a></p>
<p>The post <a rel="nofollow" href="https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/">Getting Started With WordPress for Developers</a> appeared first on <a rel="nofollow" href="https://cloudnineapps.com">Cloud Nine Apps</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Getting Started With WordPress for Developers and Webmasters</h1>
<h2>Introduction</h2>
<p>As I embarked on <a href="https://cloudnineapps.com/blogs/wordpress/wordpress-journey-begun/">my journey with WordPress</a>, I came across several great resources on the Net that covered different aspects of the WordPress setup. It is quite evident that it&#8217;s not just a great platform, but it also has an equally vibrant community backing it. In this post/tutorial, I will try to summarize what you need to get your first WordPress site rolling from soup to nuts, esp. if you have some development or webmaster background. And, what I mean by that is you are comfortable with things like installing typical development tools, manipulating basic PHP code or simple database configuration. Lastly, while this post is primarily geared towards developers and webmasters, regular users or at times even WordPress veterans may find something useful as I try to bring in some general development best practices.</p>
<p><span style="text-decoration: underline;">Note</span>: As it is well known, WordPress along with it&#8217;s overall eco-system has a huge set of capabilities, there are at times different ways of accomplishing the same results. This post covers what I figured out over past few months and hopefully it is useful to you. But, certainly do not be limited by what I cover here. As WordPress is continuously evolving, you may find better ways. And, if you do come across something, please feel free to share in the comments.</p>
<h2><strong>First things first: I</strong>dentify your website goals</h2>
<p>It is business 101. Identify what are you trying to accomplish with the site? Even if you are just setting it up for fun, put down a few goals. And, I&#8217;ll tell you why this is so important.</p>
<ul>
<li>If you&#8217;ve played with WordPress even a little bit, it&#8217;s plugins and themes, you perhaps already know that it&#8217;s like an ocean out there. So, unless you know what type of things you want to accomplish, it is very easy to get lost.</li>
<li>Identifying a few key goals will help you get started. Remember, you don&#8217;t need to have everything in your website on day one. Start simple and evolve over time.</li>
</ul>
<p>With that in mind, following were 2 personas I had for cloudnineapps.com:</p>
<ol>
<li>Users: The website users.</li>
<li>Admins: The website administrators.</li>
</ol>
<h2><strong>Goals</strong></h2>
<p>And, following were the key goals.</p>
<ul>
<li>Users
<ul>
<li>A simple site with a clean look and easy navigation. I had no intent to have anything flashy or animated interactions.</li>
<li>Self-registration and Membership Management for users so that they can subscribe to the products and services, participate in communities, etc.</li>
<li>Opt-in/Opt-out newsletter sign up support.</li>
<li>An ability to search the site content.</li>
<li>Typical site pages: Like &#8220;Contact Us&#8221; and &#8220;Feedback&#8221;.</li>
</ul>
</li>
<li>Admin
<ul>
<li>Manage Blogs</li>
<li>Manage Products</li>
<li>Manage Courses</li>
</ul>
</li>
</ul>
<p>As you can see, nothing very fancy here. Now, lets get into how did I go about the setup.</p>
<h2>Development Site Setup</h2>
<p>Being a developer, I decided to roll my sleeves and get a development site setup on my laptop. Following are the details of my development environment.</p>
<ul>
<li>PHP 7.1 (<a href="http://php.net/manual/en/install.php">link</a>)</li>
<li>Apache (<a href="http://www.apache.org/dyn/closer.cgi">link</a>) &#8211; I reused my existing Apache installation</li>
<li>MySQL (<a href="https://dev.mysql.com/downloads/installer/">link</a>) &#8211; I reused my existing MySQL installation</li>
<li>phpMyAdmin (<a href="https://www.phpmyadmin.net/">link</a>) &#8211; Not a must, but highly recommended</li>
<li>WordPress (<a href="https://wordpress.org/download/">link</a>)</li>
</ul>
<p><span style="text-decoration: underline;">Tip</span>: Even though we are starting here with the Development Site, our goal should be to set it up with configurations, best practices and security similar to what we would do in production. This way you can also test it out before rolling out such changes in production directly.</p>
<h3>Apache Setup</h3>
<p>I prefer to use <a href="https://httpd.apache.org/docs/2.4/vhosts/">VirtualHost</a> as that helps avoid installing multiple apache installations just to keep their configuration and deployment separate. It lets you do all that and it works like a charm as you can host multiple virtualhosts if you run multiple sites. Here&#8217;s the VirtualHost configuration I used.</p>
<pre class="lang:apache decode:true" title="ApacheVirtualHostConfig"># VirtualHost: cloudnineapps
&lt;VirtualHost *&gt;
  ServerName cloudnineapps
  ServerAlias *.cloudnineapps
  DocumentRoot /sites/cloudnineapps/www
  DirectoryIndex index.php
  &lt;Directory "/sites/cloudnineapps/www"&gt;
    Options Indexes FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
    Require all granted
  &lt;/Directory&gt;
&lt;/VirtualHost&gt;
</pre>
<p>Few tips and tricks to use this.</p>
<ul>
<li>Create an entry in the <strong>/etc/hosts</strong> file for the site.
<pre class="lang:default decode:true " title="EtcHost">127.0.0.1 cloudnineapps</pre>
<p>Now you can access the website using local browser.<br />
http://cloudnineapps/</p>
</li>
<li>Other entries in VirtualHost specify the root directory for site content and basic permissions.</li>
<li>I created an <strong>.htaccess</strong> under <strong>DocumentRoot</strong>.
<pre class="lang:apache decode:true">&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
&lt;/IfModule&gt;
</pre>
<p>The admin URL will be: http://cloudnineapps/wp-admin</p>
</li>
</ul>
<h3>Database Setup</h3>
<p>Since I already had MySQL installed, I simply created a new database for my Development Site.</p>
<pre class="lang:mysql decode:true" title="DBCreateScript">create database cloudnineapps_wp;
create user 'c9dbuser'@'localhost' identified by 'password';
grant all privileges on cloudnineapps_wp.* to 'c9dbuser'@'localhost' identified by 'password';
flush privileges;
</pre>
<p><span style="text-decoration: underline;">Tip</span>: Please use a strong password for database.</p>
<h3>WordPress Setup</h3>
<h4>WordPress Installation</h4>
<ul>
<li>Extract the content of the wordpress zip and copy the extracted files under the <strong>DocumentRoot</strong> above.</li>
<li>Ensure to give write permissions to the user that apache is running as. Example for Mac
<pre class="lang:sh decode:true " title="DocumentRootPermissions">sudo chown -R _www:staff /sites/cloudnineapps/www</pre>
</li>
<li>You are now ready to launch the WordPress installation by going to the home page.<br />
http://cloudnineapps/<br />
<span style="text-decoration: underline;">Tip</span>: Specify appropriate title, admin user credentials and email. Again, as a practice, use strong password.</li>
<li>It may take a few minutes to complete the installation. Typically, it&#8217;s fairly quick.</li>
</ul>
<h4>WordPress Configuration</h4>
<p>WordPress is heavily customizable without writing a single bit of code. Here are the settings that I tweaked for the Development Site.</p>
<table>
<tbody>
<tr>
<th>Category</th>
<th>Setting</th>
<th>Purpose</th>
<th>Value</th>
</tr>
<tr>
<td>Settings-&gt;General</td>
<td>WordPress Address</td>
<td>The authoring website.</td>
<td>cloudnineapps.com</td>
</tr>
<tr>
<td>Settings-&gt;General</td>
<td>Site Address</td>
<td>The public website. Keep same as the above WordPress Address to avoid CORS.</td>
<td>cloudnineapps.com</td>
</tr>
<tr>
<td>Settings-&gt;Reading</td>
<td>Search Engine Visibility</td>
<td>Turn search indexing on/off.</td>
<td>Unchecked (for Development Site)</td>
</tr>
<tr>
<td>Settings-&gt;Permalinks</td>
<td>&nbsp;</td>
<td>The post URL format.</td>
<td>/%category%/%postname%/</td>
</tr>
</tbody>
</table>
<h4>WordPress Theme Setup</h4>
<p>A WordPress Theme determines the overall layout of your site, the look and feel and many such user interface related aspects. Choosing a WordPress theme is literally like going to a mall where you&#8217;ve tons of choices. This could take a few minutes and sometimes even days. I suggest to choose something reasonable because in many cases you can always come back and choose a better theme of your choice. I did so various times. And, I did not notice any data loss or such.</p>
<p><span style="text-decoration: underline;">Tip</span>: A good time to finalize your theme would be right after you&#8217;ve done the basic setup and testing, but before you prepare a lot of content. This is important as at times, the way theme presents data may lead you to organize or format your content differently.</p>
<p>For my purpose, I found the <a href="https://axlethemes.com/downloads/best-business/">Best Business Theme</a> to be adequate. You can search and install themes from the admin&#8217;s <strong>Appearance-&gt;Theme</strong> option.</p>
<h4>WordPress Plugins Setup</h4>
<p>A WordPress Plugin provides specific capabilities that could range from simple presentation/formatting to more complex things like e-commerce, course management, etc. Alike theme, choosing the right set of plugins can also be daunting. Often there are multiple plugins that serve same or similar purpose. Contrary to theme, I do recommend spending a bit more time identifying the plugins early on. At least, on the most important ones that you want. Several plugins directly impact the way you would author content. Hence, it is worth taking time on the most important plugins. Here&#8217;s the list that I picked. You can search and install plugins from the admin&#8217;s <strong>Plugins</strong> menu.</p>
<table>
<tbody>
<tr>
<th>Plugin</th>
<th>Purpose</th>
</tr>
<tr>
<td>Contact Form 7</td>
<td>A very flexible forms plugin.</td>
</tr>
<tr>
<td>HC Custom WP-Admin URL</td>
<td>Protects WordPress URL by providing a custom slug (instead of the default &#8216;wp-admin&#8217;).</td>
</tr>
<tr>
<td>LearnPress</td>
<td>Provides online course management capabilities.</td>
</tr>
<tr>
<td>MailChimp for WordPress</td>
<td>Provides integration with the popular MailChimp bulk mailer.</td>
</tr>
<tr>
<td>Post Tags and Categories for Pages</td>
<td>Provides categories support for pages.</td>
</tr>
<tr>
<td>TablePress</td>
<td>Provides beautiful tables.</td>
</tr>
<tr>
<td>Ultimate Member</td>
<td>Member registration and self management.</td>
</tr>
</tbody>
</table>
<p>That&#8217;s it! You are now ready to start using your Development Site.</p>
<h2>Author&#8230; Test&#8230; Improve&#8230;</h2>
<p>You put your heart and soul in getting the site setup. Now it&#8217;s time to put content that would interest your target audience. Start simple. Author a few different type of content, such as, a couple blog posts, pages, etc to get a feel. You may also find better theme and plugins along the way. And, that&#8217;s why I call it a journey. It&#8217;s not the end. It&#8217;s the beginning!</p>
<h2>Promote to Production</h2>
<p>Once you&#8217;ve perfected the Development Site to a level where you feel comfortable rolling it out to the public, look for an appropriate hosting provider. At this point, I do not have a strong recommendation. But, look at the popular WordPress tutorial sites. They often provide links to hosting providers with coupons as well. As far as pushing content to production is concerned, I did it using the following steps.</p>
<h2>Production Database Setup</h2>
<ul>
<li>Backup source database (as SQL using phpMyAdmin).</li>
<li>Replace the references from local site to the target site (e.g., &#8220;http://cloudnineapps/&#8221; by &#8220;https://cloudnineapps.com&#8221;).</li>
<li>Login to cPanel of your hosting provider and launch phpMyAdmin.</li>
<li>Drop all tables.</li>
<li>If changing the table prefix, do the following.
<ul>
<li>Update all the <strong>wp_*</strong> tables to use <strong>table_prefix</strong>.</li>
<li>Update the names of the following to use the <strong>table_prefix</strong> in wp-config.php instead of <strong>wp_</strong>.
<ul>
<li><strong>&lt;table_prefix&gt;_usermetdata</strong>
<ul>
<li>wp_capabilities</li>
<li>wp_user_level</li>
<li>wp_dashboard_quick_press_last_post_id</li>
<li>wp_user-settings</li>
<li>wp_user-settings-time</li>
</ul>
</li>
<li><strong>&lt;table_prefix&gt;_options</strong>
<ul>
<li>wp_user_roles</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Import above updated SQL.</li>
<li>Update the following rows in the <strong>&lt;table_prefix&gt;_options</strong> table to use the correct site URL.
<ul>
<li>siteurl</li>
<li>home</li>
</ul>
</li>
</ul>
<h2>Production WordPress Content Promotion</h2>
<p>Once the production has WordPress installed, do the following.</p>
<ul>
<li>Copy the wordpress folder (except <strong>.htaccess</strong> and <strong>wp-config.php</strong>).</li>
<li><strong>wp-config.php</strong> updates
<ul>
<li>Ensure the <strong>DB_NAME</strong>, <strong>DB_USER</strong>, <strong>DB_PASSWORD</strong> and <strong>DB_HOST</strong> point to the correct database info.</li>
<li>If changing table prefix, ensure to update the <strong>table_prefix</strong>.</li>
</ul>
</li>
<li>Enable HTTPS.</li>
</ul>
<p>&nbsp;</p>
<p>And, let your WordPress journey begin.</p>
<p>Good luck!<br />
&#8211; Nitin</p>
<p><div class="su-note"  style="border-color:#e5d6d4;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#fff0ee;border-color:#ffffff;color:#333333;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;"></p>
<center>
<h4>Build smart reusable content that is easy to maintain.</h4>
</center>
<p><div class="su-row"> <div class="su-column su-column-size-1-2"><div class="su-column-inner su-u-clearfix su-u-trim"></p>
<p><a href="https://cloudnineapps.com/products/wordpress-plugins/c9-variables/"><img class="wp-image-728 size-full aligncenter" src="https://i1.wp.com/cloudnineapps.com/wp-content/uploads/products/wordpress-plugins/c9-variables/c9-variables-small.png?resize=128%2C128&#038;ssl=1" alt="" width="128" height="128" data-recalc-dims="1" /></a></p>
<center><strong><a href="https://cloudnineapps.com/products/wordpress-plugins/c9-variables/">C9 Variables</a> (FREE)</strong></center>
<p></div></div> <div class="su-column su-column-size-1-2"><div class="su-column-inner su-u-clearfix su-u-trim"></p>
<p><a href="https://cloudnineapps.com/products/wordpress-plugins/c9-variables-pro/"><img class="wp-image-663 size-full aligncenter" src="https://i0.wp.com/cloudnineapps.com/wp-content/uploads/products/wordpress-plugins/c9-variables-pro/c9-variables-pro-small.png?resize=128%2C128&#038;ssl=1" alt="" width="128" height="128" data-recalc-dims="1" /></a></p>
<center><strong><a href="https://cloudnineapps.com/products/wordpress-plugins/c9-variables-pro/">C9 Variables Pro</a></strong></center>
<p></div></div> </div></div></div></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fcloudnineapps.com%2Fblogs%2Fwordpress%2Fgetting-started-wordpress-developers-webmasters%2F&amp;linkname=Getting%20Started%20With%20WordPress%20for%20Developers" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fcloudnineapps.com%2Fblogs%2Fwordpress%2Fgetting-started-wordpress-developers-webmasters%2F&amp;linkname=Getting%20Started%20With%20WordPress%20for%20Developers" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fcloudnineapps.com%2Fblogs%2Fwordpress%2Fgetting-started-wordpress-developers-webmasters%2F&amp;linkname=Getting%20Started%20With%20WordPress%20for%20Developers" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fcloudnineapps.com%2Fblogs%2Fwordpress%2Fgetting-started-wordpress-developers-webmasters%2F&amp;linkname=Getting%20Started%20With%20WordPress%20for%20Developers" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd a2a_counter addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fcloudnineapps.com%2Fblogs%2Fwordpress%2Fgetting-started-wordpress-developers-webmasters%2F&#038;title=Getting%20Started%20With%20WordPress%20for%20Developers" data-a2a-url="https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/" data-a2a-title="Getting Started With WordPress for Developers"></a></p><p>The post <a rel="nofollow" href="https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/">Getting Started With WordPress for Developers</a> appeared first on <a rel="nofollow" href="https://cloudnineapps.com">Cloud Nine Apps</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudnineapps.com/blogs/wordpress/getting-started-wordpress-developers-webmasters/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">495</post-id>	</item>
	</channel>
</rss>
