FeedBurner makes it easy to receive content updates in My Yahoo!, Newsgator, Bloglines, and other news readers.
Have you ever thought about the security of your WordPress installation? Or rather has your installation ever been attacked or hacked?
Well, security is one very important feature that every other developer is always worried about. In this article, I would like us to discuss ways of making your installation secure to avoid attacks from hackers who might want to hijack your work and gain unauthorised access.
There are several factors to check in making your installation secure, ranging from the strength of your passwords to setting permissions correctly. There are also plugins available for use in securing in installation, but most of them come with a limitation, some being very difficult to use and other causing a lot of traffic or conflicts with others. I am going to talk about some of the things that you can do to make sure that your installation of WordPress is secure.
One of the things that every WordPress developer knows is that all WordPress installations use wp-login and admin as the default username. These are some of the most common defaults that hackers can use to try and force access to your WordPress installation. With those two, the only value they might not have is the password, but they can write scripts that could attempt to guess the password value, and if they gain access, it could be terrible. Another default value that hackers know is the database name that is by default prefixed by the wp_ keyword. These three are defaults that are known by every other person, and even though we might not have evidence of them being used, why can’t we make it hard for the hackers? These values can be changed during installation of WordPress, or on the settings of an installation that already exists.
During installation of WordPress, the default values are always suggested. This, especially when you click on the ‘Lets Go’ button, can be seen on the screens that follow.
In the screen above, the default prefix value for tables is set as wp_. This is common with all WordPress installations. You will be doing yourself some good by changing this to any other prefix, avoiding the default value.
After that screen, you are taken to the screen below.
Here, we can see that the username has a default value of admin. It is advisable to change this to a different username. Sometimes you might interact with your users, and might be afraid that they will still get to see the name you chose. In such cases, you can choose a nickname in settings, that is the name they would see. Try as much as possible to pick a username that can not be identified with you as well, such as your own name. You will also be prompted to pick your password here, make sure that the password you pick is very strong, you can see the password strength as you enter it.
If you did not change the default values during installation of WordPress, you can still change them. I would advise you to always change them during installation since it is quite easy and straightforward. The table prefix is one of the sensible things to change here because it is touching a lot on the database. If you do this and make undesirable changes to the database, it would mean that your site would not be accessible if you had not backed up the database.
As I mentioned earlier, having admin as your username is not secure. If you have an installation with admin as the username, you do not have to worry although there is no simple way of renaming it apart from creating another user. This can be done by deleting the admin account, of course after creating a new account!
The first step to do this is logging in to your dashboard and clicking on users. You can add a new user by clicking on the Add New menu option. Here, set the username to something else, of course avoiding your real name which could be risky to use, or easy to guess.
After this, fill the other required fields which include the password, email, first and last names and website. You can leave blank the website and last name if you do not want them. Remember to use a very strong password, and set role as an administrator.
Now, you can logout of WordPress and log back in using the new username that you have just created. Going back to users on the dashboard, you can see now that you have two users, the new one and the one that you had. We need to delete the user with username admin. When you hover the cursor over it, you can see extra options such as edit and delete. Click on delete to remove it completely. See the image below.
To add a nickname to the new user, simply click on profile on the sidebar. This will bring a form that you will fill, adding a nickname that can be visible to website users if you interact with them.
An attacker might get into a situation where they are trying to guess one password after another in order to gain access to your installation. This is a brute force attack. One of the best ways to avoid this is to make sure that you are not using common passwords.
There is a plugin called Bulletproof Security that is used to limit the number of times a user is allowed to guess a password, or to attempt a login. This plugin suspends a visitor for an hour if they incorrectly use the wrong password for three consecutive times. You can use it by login into your dashboard, then go to plugins and add new. Once installed, launch it from the side bar and simply select the default options and save.
The admin area location is another value that is targeted by hackers. To avoid this, you can add a basic trap that redirects attackers in case they manage to pass through the Bulletproof Security plugin. Stealth Login Page is a plugin that can be used for this purpose. After installing this plugin, launch it from the sidebar and enable it. Then add a pin or a url that attackers can be redirected to if they try to gain access to your login page. The image below shows how the plugin looks like when launched.
The pin is important. It will be added to your login page, and you will need it to be able to login to your dashboard.
The measures discussed above will no doubt help you secure your WordPress installation. There is no limit to the things you can do to make sure that your installation is safe. There are other things you can do such as limiting users with admin roles, using LastPass or Clef, avoiding the use of repetitive passwords among others.
The Internet certainly doesn’t lack for resources on great web design. From various tutorials and inspiration galleries, you are bound to find a way to improve your design skills, learn new ways to accomplish something, stay on top of design trends or simply gain a new perspective.
But, sometimes it’s worth stepping away from your usual inspiration resources and turn elsewhere. One of the best places to seek out inspiration is music, especially old-school MTV music videos.
Not only can music increase your productivity, music influences your mood and it can also connect you with your client in a more meaningful way.
In this post, we’d like to share six things you can learn from old-school MTV…
A-ha’s “Take On Me” combines pencil-sketching with live action to tell a fantasy-romance story. Even though the video we all know today was in fact the second version, it gained traction thanks to the wide exposure it got on MTV and quickly rose to the top of the charts.
The video was innovative for its time and shows us how to effectively combine two very different art techniques and blend them in an attractive way that captures attention and manages to remain relevant.
Whether you call it white space or negative space, the fact is, careful use of it can bring elements on your page into focus. A great example of this is the video for “Nothing Compares 2 U” by Sinead O’Connor.
In this version of the video, O’Connor is wearing black, standing against a black background with a closeup of her face as she goes through various emotions. The lone face and two single tears rolling down her cheeks toward the end of the video made it immediately iconic in its simplicity.
Grids, complimentary colors, and careful choice of typography are some of the basic principles of web design that ensure websites are aesthetically pleasing and easy to use. But, not all websites need to follow those rules. In fact, sometimes breaking the rules and coming up with a different way to showcase a gallery or using a different navigation method can add visual interest and make the website stand out.
The video for Jamiroquai’s “Virtual Insanity” is the perfect example of breaking the rules and making a visual impact. At first glance, the video includes moving furniture but it’s just an illusion. In actuality, the walls move on a stationary, grey floor with no detail, and give the illusion that objects on the floor are moving.
Every design should tell a story, including web design. The website should guide visitors from one point to another, whether the purpose of the website is to get more leads or more store conversions. The flow should be natural and effortless, leading visitors from the first page to the part where they get excited and want to learn more about the company or the person behind the website to that final moment where they turn into subscribers or customers.
One of the most iconic videos of all time, Michael Jackson’s “Thriller” establishes a complex narrative in 13 minutes, beginning the story with a young couple watching a horror movie, walking out of the theater and experiencing a horror story of their own, only to realize it was all a dream.
As much as the narrative guides website visitors to where you want them to go, don’t be afraid to break up the flow with a call to action where appropriate. Whether it’s to lead them to a new page to learn more or encourage them to do something, calls to action are integral to any website.
Soul Asylum’s “Runaway Train” talks about a difficult topic dealing with children who live in abusive homes or are taken away against their will. But the story is interrupted with photos of actual missing children, bringing attention to an ongoing problem all over the world. The video itself led to 26 of the missing children being found after it received heavy airplay on MTV.
It’s easy to find a design style we like and default to it each and every time, especially if it’s continually well-received. But design trends often change and as a result, you have to adapt if you want to stay relevant. Drawing inspiration from different eras of design and art and then combining them, challenges you to step outside your comfort zone and create something truly unique.
R.E.M.’s “Losing My Religion” finds inspiration in Indian movies and Caravaggio’s paintings which results in a video that combines dream-like imagery with biblical scenes accompanied by Stipe’s unique dance style.
There’s a goal behind every website, and a specific chain of events that must occur before each goal is accomplished. Whether you want someone to sign up for your email newsletter, or fill out a contact form, these things don’t happen without the proper triggers. Used strategically, WordPress plugins can assist with the realization of important goals.
Here’s how to turn your website into a conversion machine with WordPress Plugins.
Essential Grid is an all-around grid solution for all types of websites: blogs, portfolios, galleries, Woocommerce shops, and more. A grid is helpful in maintaining a mobile responsive design by enabling designers and developers to present information in a simple and appealing manner. Grids can be scaled without breaking the overall structure of the website. A grid plugin like Essential Grid can help to make your site mobile responsive by creating a system of flexible grids for your content.
Essential Grid has a number of premade layouts and skins, but you can also use its configuration tool to customize the look and feel to fit your website’s exact style. Essential Grid’s features include:
But how does Essential Grid help with conversions?
Internet entrepreneur and teacher Melyssa Griffin promotes the use of this plugin as an easy way to create and display an exclusive content library for email subscribers. Creating a password protected content library can be a tactic to encourage people to sign up for your email list. Subscribers will willingly opt in so that they can gain access to the exclusive resources you provide. Setting up Essential Grid means empowering clients to continuously update their own content libraries without needing your intervention for every. single. update.
A regular license for Essential Grid costs $26.
Some people claim that Essential Grid slows down their website, so if you’re looking for an alternative, here are a few options:
Leadpages is one of the most popular plugins for generating leads, thanks to its landing page builder software. It streamlines the entire lead generation process by granting easy access to everything you need to set up email forms and landing pages in one plugin (and web application).
Leadpages features include:
Besides a number of useful features, Leadpages is serious about educating their customers to make the most of their landing page software. They’re notorious for hosting over 200 webinars each year, offer a number of free courses, and share up to date lead generation news and tips on their blog. There’s a bit of a learning curve when using their software, but once overcome, Leadpages is easy enough for clients to manage on their own. Or, if you’d rather stay involved, add in management as part of a WordPress maintenance plan!
With all of these premium features, Leadpages is not free. Plans start at $25/month, and are most cost-effective when purchased annually.
Leadpages is a clear industry leader for landing pages, but here are a few alternatives if you’d like to do more research:
Optinmonster is a lead generation plugin that allows users to create and integrate highly effective email signup forms. It works well with email service providers like Mailchimp, Aweber, and Infusionsoft.
Though there is no shortage of email signup form plugins on the market, Optinmonster combines the best features of other plugins, bundled into one. Thanks to Google’s mobile-first initiative, the rules for email popups (or “interstitials” as Google refers to them) are changing. But Optinmonster has the perfect solution for those that still want to use popups to collect emails.
Instead of launching an email signup popup shortly after a visitor lands on your page, you can use Optinmonster to instead convert abandoning visitors into subscribers, thanks to exit intent technology. The Optinmonster plugin detects user behavior and serves up a relevant campaign the moment they are about to leave (like when they mouse over to the back button or red “x” in the top corner of a browser.
To help with lead generation efforts, when a user is done reading content, Optinmonster’s exit intent technology offers them a free ebook, case study, webinar, or trial in exchange for an email. Because of this, Optinmonster users see a 200-600% increase in email signups (and a 0% decrease in search engine rankings by following the rules).
Additional features that come with using Optinmonster include:
For all this and more, Optinmonster charges just $9/month for a basic plan.
For email list building, these plugins make for decent alternatives to Optinmonster:
Like Optinmonster, Magic Action Box is a lead generation plugin. It differs in terms of the mechanism behind lead capture. Instead of focusing on popups, Magic Action Box allows you to display opt in forms and feature boxes directly on your website, using an attention-grabbing callout.
Magic Action Box easily integrates with any page or post, and is the ideal solution for a client that creates frequent content upgrades for their blog – but doesn’t want to constantly bug you for coding help. A content upgrade is a “bonus” along the same lines as the blog post that it’s attached to, encouraging people to unlock access in exchange for an email address.
Some of the many features that come with using Magic Action Box:
Magic Action Box offers a free lite plan, but paid plans with premium features start at $47. You could create your own version of Magic Action Box for clients, but the support available by using the premium version of this plugin can shift constant questions about creating content upgrades from you to the plugin developer.
The best alternatives to Magic Action Box include many of the email list building plugins mentioned above. However, if you’re looking for more tools to create conversions based on calls to action, check out Hello Bar (free and premium plans available).
Kingsumo Giveaways is a WordPress plugin that provides an ingenious structure for creating targeted giveaways, which represents an excellent opportunity to get targeted leads.
The Kingsumo Giveaways plugin allows people to easily enter giveaways, and gives contestants an incentive to promote the giveaway in order to get more entries. Each person who enters a Kingsumo giveaway gets a “Lucky URL” that is tied back to them. If they share their Lucky URL and get others to enter by using it, they get more entries. This tracking/incentive mechanism is unique to Kingsumo, which is what makes it one of the best WordPress contest plugins.
Using Kingsumo has allowed Noah Kagan of Appsumo to grow his email list to over 700,000 subscribers.
The price to purchase a Kingsumo license is a bit steep at $198, but signing up for AppSumo’s email list may result in a better deal—they’ve offered lifetime access in the past for $49. Unlike many of the other WordPress plugins and tools mentioned on this list, Kingsumo is definitely one where you’re better served with purchasing access instead of trying to create a custom solution on your own.
If you want to wait on purchasing/recommending a client to use Kingsumo Giveaways, here are a few alternative contest plugins and options:
If you (or the client’s) website has a blog, you should do everything in your power to promote it. Part of that is creating conversion factors within each post, like a mechanism for social sharing.
Social Warfare provides a simple and beautiful solution for encouraging social shares that make it stand out from other popular social share buttons on the market.
Social Warfare features include:
Both free and premium options are available. Premium pricing starts at $29/year.
Popular alternatives to Social Warfare include:
As a developer, you could code most of the functionality for these plugins on your own. But instead of getting lost in the details, helping customers achieve their desired conversions will make you look like a saint without all that wasted time. Plus, the support available through plugin developers will shift basic questions from you to them, freeing up your time for revenue-generating activities.
Capturing leads does not have to be complicated. With these WordPress plugins, you can turn your website into a conversion machine.
Blogs, E-commerce sites, admins, and search results, almost everywhere you go online you are presented with large amounts of data and results, this transfer of information is a big part of what web applications are about.
In this article we are going to take a look at how you can make your application dynamic by allowing your users to sort and navigate the data you are showing them using Vue.js.
We are going to be building a reactive table like in the picture above, but before we get down to the build, I find it helpful to break down the problem into smaller more specific tasks or features.
Leaning on the reactivity of Vue.js you will see how easy it is to make a reusable table that adapts to the data you provide it. So without further ado, let’s get right into it.
First things first, before we can start making the table dynamic, we need to create the table itself. The data we will be using is a list of users with the columns: id, name, phone, and profession. The simplest way to render our data using Vue.js is by using the v-for directive to iterate an HTML template over a list.
The main problem with the above code is that it is tightly bound to the specific data we used. If the data changes you will need to update the template along with it. We can take this one step further and define the columns in the data field of our component, or better yet, if your data all follows the same format, you can let Vue.js read the keys itself (how meta of us).
Iterating over the columns is exactly like how we iterated over the rows in the previous example, and now when we iterate over the rows, for each row we iterate on all its columns.
By using v-for inside a v-for we not only shortened our template significantly but made our Vue.js table a more lot adaptable to any data you throw at it. It is generally a good idea to remove any tightly bound links between your data and template when building something where the data can change.
Sorting the table is a lot simpler than you may think. Traditionally, this involves sorting the data itself and then re-rendering the HTML, all the while keeping track of click events on the columns and sorting direction. Vue.js takes care of a lot of it for us—by just updating the underlying array of users, the table will react automatically.
Let’s start simple and just have the data sort itself when clicking on a column. To do this we need to add a click event to the column’s headers which when clicked will sort the data accordingly.
We add the click event handler by using the v-on:click directive in our template on each <th> element that calls a method called sortTable, passing the column with which to sort the data.
Now playing with the table, you can see this is pretty cool, but only sorts in one direction. To sort in the other direction, the closure we pass to the sort method needs to return 1 where we returned -1and visa versa, essentially flipping the order.
To accomplish this we need to keep track of which column we are currently sorting by, and in which direction to sort – ascending or descending. So let’s go ahead and add these two fields to our dataobject and update the sort method.
Bi-directional sorting, now we are getting somewhere; we have already implemented all the logic needed to sort the table, but it would be nice to be able to have some indication as to what is being sorted, and how.
If you think about it logically, what we want to do is add something to indicate whether we are sorting in ascending or descending order to a column, if we are currently sorting by that column. Vue.js has a built in directive v-if that accepts an expression and only adds the HTML element to the page if the expression is evaluated true.
So we add an element to the th element for the column which is currently being sorted, and then we give our indicator element the class arrow_up or arrow_down based on the ascending field in our Vue.js component using another directive v-bind.
The v-bind directive allows you to reactively bind a value to any attribute or property of an HTML element. For example you can use v-bind:href to bind a url dynamically to an element. The advantage to using v-bind is that whenever the underlying data used in the expression is changed the attribute will be automatically updated.
In terms of HTML, or the sorting functionality we just added, displaying a paginated table is no different than displaying a full table. The only real difference is you only want to display a subset of the array of data. The question is, just how do you want to split up your data?
If you know what page you are currently on and you know how many results you want to display per page, you can take a slice out of the full array and iterate over it instead of iterating directly over all rows. So let’s add these two properties as fields in our component, and instead of iterating over rows like we have been doing we will add a method which returns a subset of the data, based on those properties.
In order to display the page numbers we also added a method which calculates the number of pages there will be in total, and we use v-for again to iterate through all the pages. When specifying a number to v-for instead of an array, Vue.js will create a loop which will count from 1 up to (and including) the number you specified.
Changing pages is as simple as updating the field we added which stores the current page. We don’t need to worry about re-sorting or re-rendering the page, or even re-splitting the array into a new sub-array. If the method used to return a subset of the array uses the property currentPage, then just by updating the value, everything will update automatically.
In this article we built a data-table using some basic directives in Vue.js. But it’s worth noting that the only thing making this a table is the HTML template. Everything we did here would work on a blog, grid layout, or really any other HTML representation all the same.
Moving forward there are many more features you can add to this; the same concepts used to paginate, where we iterate over a subset of the data, can be used to add filtering your table with a search box, or you can asynchronously load your data one page at a time, and by replacing the rows property, achieve a lazily loaded data table.
Plugins and themes on WordPress can occasionally interfere with each other and prevent your login page from loading, which will prevent you from accessing your website’s backend. In most cases you might even get nothing but a white screen. The solution in this case is to access the database associated with your WordPress site using phpMyAdmin and deactivate the plugins manually.
To start troubleshooting first we need to login to our cPanel and click on the phpMyAdmin icon in the Database Tab. Enter your administration user name and password if required.
After you are logged into your database, click on your database name from the menu on the left side. (Please note, for this tutorial we are using theGem as our database name. Yours will be different, in most cases it is your site or business name.)
Click on theGem (your database name) and then wp_options.
From the wp_options table, you will need to search for your theme, files and plugins to temporarily deactivate them to troubleshoot the issue.
The first search needs to be for an option_name. You will enter template in the search bar for option name. This should retrieve the template entry in the database.
From here, you will delete the text field and enter your original default theme.
The second search should be for the stylesheet. In this search, you will enter stylesheet in the option_name section and press enter. This will show the results of your stylesheet. Enter the default theme name in the option_value textboxt to reset to default.
The third and final search is for installed plugins. This time the value to search for is active_plugins. A long threaded bunch of letters, numbers, and symbols should show in the value field for active_plugins.
Erase this command and press enter. The option_value for the plugins should now be empty. This makes all the plugins disabled on the WordPress site.
After completing the first three steps, your WordPress site should load. You might need to refresh the page in order to see it. From this point, you will be able to go into the plugins sessions of your WordPress site and find where the conflict is. This will allow you to adjust the plugins and themes and make sure that the site loads properly.
This solution works well whenever you cannot get your WordPress site to load at all. It could either show as a blank page or simply load continuously. Make sure to complete all three of the searches within phpMyAdmin to reset all of the possible conflicts. The first two searches help to reset the theme and the third helps to deactivate the plugins.
There’s so much talk about the “user experience” these days that it’s easy to shrug off the concept of the UX. After all, if you’re in the business of building websites using modern standards and best practices, then isn’t the ultimate goal already to create a quality user experience?
The answer to that is, “Yes, but…”
Here’s the caveat: this idea that websites should be designed around the user experience is a given. If the on-site experience isn’t a satisfying or even a pleasurable one, users won’t convert. However, there is a difference between abiding by basic web design and development best practices and learning how to focus on UX.
While you might not be able to adopt or master a rigorous UX process right away, here are 5 user experience design strategies you can start using now to become a better web developer.
A beautiful interface for your website is important for impressing visitors. Not only that, you want it to be cleanly laid out and to have a clear focus on the content so there’s no confusion as to what parts visitors should pay attention to. But all of these “musts” have to do with the actual graphical interface and not in the underlying nuts and bolts that drive user behavior.
If your goal is to master UX, understand that it requires a different approach than UI design. While the two do ultimately come together to shape the overall experience for visitors, UI design deals in the outward aesthetics of the site while UX design deals in the ease of usability and interactivity with your site.
So, before you adopt any of these further strategies, remind yourself that UX design requires a separate approach; one that’s more analytical in nature.
The one question you should ask yourself if you’re trying to master UX design is: “Do you care about the why?” And the reason for this is simple: because designing for user experience relies on your ability to project the future. Yes, that eye-catching site you want to build is sure to get visitors to notice your business, but does the experience you’ve built on-site support their end goals?
Think about it like this:
If you want to be a better developer, consider looking at your job as that of a customer service representative. You should know what your visitors’ goals are before they even get through that door. Additionally, before questions or issues arise, you should have already figured out a solution to them.
UX is about understanding your audience and being empathetic to their plight—both in the problem that’s brought them to your site as well as the problem they might run into during a bad on-site experience.
Think of UX more like a strategy than a design. Its focus is on breaking down web projects into the most minute of details so it gains a firmer hold on shaping the experience.
For those of you who are natural-born problem solvers, this one will come easy to you. For those of you who aren’t, you’ll need to learn how to prioritize strategy and cold-hard facts over that urge to create something “really cool.”
There are a number of ways UX pros go about collecting these facts in preparation to build out the user experience. These include researching competitors as well as the industry. Once a thorough base is established for what’s been done, work then needs to focus on creating identities for the site’s brand, voice, and end user (known as user personas).
There’s a lot of work that goes into UX design. While no one expects you to adopt all of these strategies (at least not right way), one of the best things you could do for yourself as a web designer or developer is to get yourself more organized and structured in how you approach your work.
UX is all about systematic thinking and strict planning. If you can nail that down now and find the right tools to streamline this new approach, you’ll find that much of the other UX strategies will more easily fall into place later.
Here are some of the tools you’ll find the most helpful:
This again goes back to the idea of approaching your job like a customer service rep. UX pros understand that it’s not enough to study, plan, and test in isolation. Without user feedback, you could just end up spinning your wheels and not gain any traction with your audience.
That’s why it’s important to listen, too. Study the analytics. Send out user surveys. And, above all, be receptive to the feedback you receive. If this is your first time trying to build specifically for usability, your idea of what works may not be exactly on par with what your visitors want or need.
CraftCMS is a content-first CMS that is loved by developers and content producers alike. Of all the alternatives to WordPress that are out there, CraftCMS is one of the best. Here we look at getting started with this awesome developer-friendly content management system.
The easiest stage of all, go to CraftCMS’s official site and get download the latest version of CraftCMS. It’s free to download and develop on, but when you come to launching your site you need to choose a licence (very cheap at $199).
MAMP is a great tool, it allows you to run your own ‘server’ from your local machine, and is very beginner friendly, you don’t need to be a developer whizz to get this software right. Download MAMP. Follow the instruction guide, and just install a default server.
Awesome, MAMP is installed and Craft downloaded, you’re on a roll! Once MAMP has finished installing the first thing we want to do is click ‘Start Servers’ once this launches you should be presented with a screen saying ‘MAMP has been installed successfully’ if you’re on this, fantastic! If not, MAMP has great troubleshooting guides to get it up and running for you.
Firstly, we need to create a database for our CraftCMS website, so on the MAMP Installed page, under the tools menu dropdown click ‘PHPMyAdmin’ this should open up a new tab with a scary looking interface! Don’t worry, all we’re doing here is clicking one button! Click the ‘Databases’ tab located at the top, next we want to ‘Create Database’ and we’re going to name this one ‘craft_db’.
Now are databases are all set up, we should shut our MAMP servers down. You can do this by clicking ‘Stop Servers’ on the MAMP window. Now let’s unzip our Craft CMS download.
Now, what we need to do is head into our MAMP’s htdocs folder within /Applications/MAMP/htdocs/ once you’re within this path, paste your whole ‘Craft-version-number folder within it, this will allow Craft to be able to find your install. (Also, rename your ‘public’ folder to html, this will allow easier uploading, but it’s completely your choice!)
Craft needs access to things on our Mac, by default mac is very keen to protect you from the web and all the nasty things that can happen. But hey, we’re developing locally and don’t really need this protection from ourselves! Do the following commands in your terminal:
cd /Applications/MAMP/htdocs/Craft-put-your-version-name chmod 774 craft/app/ chmod 774 craft/config/ chmod 774 craft/storage/
Now we need to tell Craft where our database is and what name it is, remember we called it ‘craft_db’. So let’s go ahead and open the following file in your favourite code editor:
Change the following settings:
Save that file, and let’s get cracking!
Craft is a bit silly and this is just a janitor task, what you’ll need to do is open /Craft-your version name/html/htaccess in your favourite code editor, and rename it so that it has a ‘.’ infront of it like so: .htaccess
Head onto MAMP, and click ‘Preferences’, you’ll be presented with another modal window. Within this window click the ‘Web Server’ tab. Change the source file to your htdocs/craft/html folder. After you’ve set it, click ‘OK’ to save these settings.
It can either work…or fail miserably. Let’s try! Open your MAMP window, and click ‘Start Servers’. Navigate in your browser to the following URL and you should see a beautiful screen such as: http://localhost:8888/admin
If you receive any errors regarding Plugins or Extensions, it means your mac hasn’t got these installed. If you’re currently getting an error stating “mcrypt extension not found” make sure it’s installed (it’s installed by default with MAMP so you should have it) but if not, please make sure to update your MAMP install to the latest version, there was a bug with the previous versions.
There’s too many errors that you may run into regarding extensions for Craft CMS, but what I would say is if any other extensions you find cause you a headache try searching for the following within Google:
“Installing extension error name e.g. mcrypt on terminal”
This should bring up lots of answers either via stackoverflow or the actual PHP site. Follow the instructions on those sites and you should be perfect!
When developer websites for clients, it’s important to proactively anticipate needs, instead of waiting for things to come up after a design is underway. On a larger scale, this involves a client onboarding strategy that asks questions like:
Once you’ve answered these big questions, it’s necessary to change your focus to the smaller things that make up a complete website. Regardless of the site’s functionality, it’s likely that clients will need help with the following WordPress site integrations.
Although WordPress has built-in website stat functionality through Jetpack, it isn’t nearly as comprehensive as Google Analytics. For that reason, and since Google Analytics can only track data from the time it’s installed, this WordPress site integration is at the top of the list as one of the first you should implement. If clients don’t have experience with the tool, you might share that Google Analytics data can help them to understand:
In essence, Google Analytics helps you to understand all the data around how people are using your website. Though the basics can be gleaned from at-a-glance dashboards, you can get more from the tool by customizing it through premade reports from the Solutions Gallery.
Google Analytics is simple to install. But first:
The easiest way to install Google Analytics is through Google Tag Manager. Another option is to use the Google Analytics for WordPress by MonsterInsights plugin (Go to Insights > Settings > Authenticate with your Google account). This can be ideal if the client wants to handle things themselves, and will give them a way to install Google Analytics without breaking the website structure accidentally. The remaining two methods for installing Google Analytics are by inserting the tracker code in the header or footer files.
The Facebook pixel is another site integration that should be on a client’s website from the first day of launch for maximum effectiveness. The Facebook pixel is similar to Google Analytics’ tracking code, in that the file itself is invisible/undetectable to website visitors. It also collects data, but it’s main purpose is for the use of retargeting people through paid ads, and for optimizing those efforts.
In the past, one ad account could have multiple pixels, but the code has since been restructured to allow the use of one Facebook Pixel for multiple Facebook pages and ad campaigns.
Installing the Facebook Pixel on your website is advantageous because of the audience retargeting has the potential to reach. As of March, there are over 1.94 billion monthly active Facebook users.
The Facebook pixel offers three core functions:
Website Custom Audiences
If you have the Facebook pixel installed on your website, it will track the movements of website visitors who are simultaneously logged onto Facebook. You can use this data to advertise to a targeted group of people. Help clients find effectiveness with advertising efforts by specifying target visitors who visited within a specific time frame or those who visited a specific page.
Custom conversions are one of the newer features of the Facebook pixel. Using this feature, you can create custom conversions that link to a completion page, which usually takes the form of a “Thank You” page. The completion page can act independent of the ads, so these conversions are tracked whether you optimize for them, or not.
Using the Facebook pixel, you can easily track those that visit a completion page, especially those that have clicked on your ads, and choose a type of conversion like “Purchase”, “Add to Cart”, “Lead”, “Complete Registration”, and more. Note that you can set a limit of 20 custom conversions, and the first few you’ve made cannot be deleted, so use them wisely.
Setting up simple conversion flows such as this, or basic guidance for setting up a Facebook ad campaign (at least the technical backend) can make for great WordPress maintenance services.
Standard events are an advanced feature of the new Facebook pixel, and are similar to the way the old Facebook pixel works. It needs a bit of code to work properly, but is able to exceed the custom conversions limit of 20, and does not need to be linked to a URL, like the custom conversion page.
The Facebook pixel must be in the header section of your index page so that it appears on every page of the website.
Email marketing continues to be one of the largest drivers of website traffic, and email marketers often use email to get leads and conversions. A hot topic, social media is a volatile medium, thanks to algorithm changes. Because of this, social media posts sharing website updates are easily ignored or lost in the news feed. Conversely, email lands directly in a person’s inbox, where the recipient has to actively choose whether to file away, delete, or read each email.
Mailchimp is an email service provider that most people start out with because of their feature-rich free plans for up to 2,000 subscribers (which now include free automation features).
Though there are a number of plugins to integrate an email service provider like Mailchimp, one of the most seamless site integrations with WordPress is through the Mailchimp for WordPress plugin. Features include:
You can use the Mailchimp for WordPress premium version to unlock additional features, Boxzilla to show call to action boxes, and any of these additional plugins to add additional functionality. It’s probably fair to assume that you could code many of these solutions yourself, but configuring user-friendly plugins will help to empower clients to make some of the easy changes on their own.
When developing a website, a professional anticipates what the client needs before they even have to ask. Collecting logins and code snippets for the aforementioned WordPress site integrations ahead of project completion can help to ensure a smooth launch. On top of that, it will renew your client’s faith in you, and put you at the top of the list for recommendations to their friends and colleagues.