Editing your WordPress site

Here’s a primer to editing your WordPress site. More detailed information can be found on the WordPress help pages but this should get most clients started quickly.

1. First log in

To login to your WordPress site, go to http://yourdomain.com/wp-admin. (Replace yourdomain.com with the domain for your site.) You will be presented with the login screen.

help-wp-login

Enter the login details you were sent after your site was launched. If you’re logging in for the first time, please remember to change your password under the Users > Your Profile menu item.

 

2. The Dashboard

After logging in, you should see the WordPress Dashboard. If you don’t see the screen below, hover over your site name on the dark menu bar at the top of the screen. You will see an option to switch between Dashboard view and Site view.

help-wp-dashboard

  1. Site name menu allows you to switch between Dashboard view and Site view.
  2. Hovering over your username will allow you to log off.
  3. Click the Posts menu item to view, edit and create new posts.
  4. Click the Pages menu item to view, edit and create new pages.

This WordPress article gives a good overview of the differences between pages and posts.

 

3. Editing content

You can add new content or edit existing ones. Click on the Posts or Pages menu item on the left and either select existing content you want to edit or click Add New.

The editing controls will be quite familiar if you’ve used a word processor like Microsoft Word or Apple Pages.

help-wp-edit-page

  1. The Visual and Text tabs allows you to switch between visual editing with toolbars and HTML coding. If you don’t know how to code web pages, make sure you’ve selected the Visual tab to bring up the editing toolbar.
  2. The editing toolbar works just like a word processor. Highlight your text and select the format option on the toolbar.
  3. Type your text in the text editing are.
  4. Click Publish or Update.

 

4. Logging out

For security, it’s best to log out after completing your edits. If you decide not to log out, you’ll see the WordPress menu bar at the top of your site whenever you visit. This will only be visible to you and other content editors who are logged in. Normal visitors will not see the WordPress menu bar.

WordPress is quite simple to use so this short guide should cover the majority of day-to-day content management tasks for most of our clients under a maintenance package. For help on anything specific to your site, please contact me.

Drupal to WordPress migration notes

These Drupal to WordPress migration notes are intended for clients who are handling some aspects of the migration themselves. Users of the Drupal to WordPress Migration Tool or MySQL queries might also find information here to resolve some problems.

Admin account password and email address

Your content management system (CMS) administrator password and email address may have changed during the migration to help with debugging. Please update them as soon as possible.

Drupal and WordPress user passwords are encrypted and I do not have access to them in plaintext. However, for your peace of mind, I recommend that you also ask all your users to reset their passwords.

Server credentials

Please remember to change any database, (S)FTP, SSH server and control panel credentials you may have given me.

Working tables

During the migration process, I may create some working tables to hold temporary data. My naming convention for the working tables are as follows:

  • acc_ prefix: these are working tables created to help with migrating data.
  • backup_ prefix: these are backups of existing tables prior to migration, for example from a previous installation of your CMS. These will not be altered during the migration process.
  • _copy postfix: duplicates of WordPress tables copied for debugging will have a _copy postfix. These are different from the backup_ tables in that they may have been manually altered.

These working tables are not used by WordPress so you may safely delete them. However, it’s advisable to keep them for a short while as they may be useful in case we need to debug any issues that crop up.

Migrating to a live server

Most Drupal to WordPress migrations are performed on a test or development server. For help on how to move WordPress to your live server, please see: WordPress Codex: Moving WordPress.

Troubleshooting common errors after a site migration

Please see below for some common problems you may experience after migrating your Drupal content to a new WordPress site.

Incorrect domain in URLs

WordPress stores domains in the database. If you performed the migration on a local or development server, there’s a good chance that the links will be incorrect after migrating to your live server. Use the Interconnect IT utility to run a search and replace on your database. This will also correct changed database prefixes.

More information can be found on the interconnect/it Search Replace DB page.

“Sorry, you are not allowed to access this page”

If you try to log in via wp-admin and receive this error, you may have overwritten the administrator user’s wp_capabilities or wp_user_level.

Set the correct meta_value using the following SQL:

UPDATE wp_usermeta 
    SET meta_value = 'a:1:{s:13:"administrator";s:1:"1";}'
    WHERE user_id = 1 AND meta_key = 'wp_capabilities';

UPDATE wp_usermeta 
    SET meta_value = '10'
    WHERE user_id  = 1 AND meta_key = 'wp_user_level';

Remember to use the appropriate the user_id.

“You do not have sufficient permissions to access this page”

If you receive this error after logging in to your new WordPress installation, it’s possible that the database prefix on your new WordPress site is not set correctly. This may happen if you move your WordPress installation to a host that uses a different database prefix.

Try running one of the queries below. Replace wp_new_usermeta, oldprefix_ and newprefix_ as appropriate.

Option 1:

UPDATE wp_new_usermeta SET meta_key = REPLACE(meta_key,’oldprefix_’,’newprefix_’);

UPDATE wp_new_options SET option_name = REPLACE(option_name,’oldprefix_’,’newprefix_’);

Option 2:

update wp_new_usermeta set meta_key = ‘newprefix_usermeta’ where meta_key = ‘wp_capabilities’;

update wp_new_usermeta set meta_key = ‘newprefix_user_level’ where meta_key = ‘wp_user_level’;

update wp_new_usermeta set meta_key = ‘newprefix_autosave_draft_ids’ where meta_key = ‘wp_autosave_draft_ids’;

update wp_new_options set option_name = ‘newprefix_user_roles’ where option_name = ‘wp_user_roles’;

Please note that these queries may not work for you. Success depends on your specific setup.

For more information, please see the following pages:

“Unable to establish database connection”

The database credentials are correct but you see an “Unable to establish database connection” error. Check that wp_options table is not empty.

Allowed memory size exhausted

  1. Increase php.ini memory size
  2. Increase WP settings memory limit with:
    define(‘WP_MEMORY_LIMIT’, ‘128M’);

Post migrated but navigating to post shows blank page

The post is visible in the dashboard but viewing it displays a blank (but themed) page. Manually saving it on the dashboard makes it appear.

It’s possible that the problem posts need to be assigned to a category.

Post migrated but navigating to post shows ‘Not found’ error

The post is visible in the dashboard but viewing it displays a ‘not found’ error. Manually saving it on the dashboard makes it appear.

  1. Check that the url contains valid characters for a WordPress slug.
  2. Check that .htaccess is enabled in your Apache configuration

Link to author 404

Posts exist but link to the author’s post listing page is broken.

Check user_nicename in wp_users WordPress table. Make sure the nicename doesn’t contain invalid characters such as spaces, periods.

Dashboard controls not visible after logging in

If you are able to log in as an administrator user but do not see the Dashboard controls, check your table prefixes. If the table prefixes changed during the migration, you may have forgotten to update the options and usermeta tables.

Check where the old prefixes have been set:

SELECT * FROM `wpnew_options` WHERE `option_name` LIKE '%wp_%';
SELECT * FROM `wpnew_usermeta` WHERE `meta_key` LIKE '%wp_%';

Updated the prefixes. For example:

UPDATE `wpnew_options` SET `option_name` = 'wpnew_user_roles' WHERE `option_name` = 'wp_user_roles';
UPDATE `wpnew_usermeta` SET `meta_key` = 'wpnew_capabilities' WHERE `meta_key` = 'wp_capabilities';
UPDATE `wpnew_usermeta` SET `meta_key` = 'wpnew_user_level' WHERE `meta_key` = 'wp_user_level';

UPDATE `wpnew_usermeta` SET `meta_key` = 'wpnew_user-settings-time' WHERE `meta_key` = 'wp_user-settings-time';
UPDATE `wpnew_usermeta` SET `meta_key` = 'wpnew_user-settings' WHERE `meta_key` = 'wp_user-settings';

Further help

We’ll be very happy to provide support you if have difficulties after migration. For a quotation, please contact us. We also offer customised hosting and maintenance packages. Please ask for details.

About the EU Cookie Law and our cookie policy

The EU Cookie Law

In May 2011, EU countries adopted the ‘EU Cookie Law’ (officially, the EU e-Privacy Directive). Essentially, it put in place legislation to force website owners to be transparent about their use of cookies and to ask visitors for consent. The legislation applies to all sites in European Union Member States, as well as foreign website who target audiences in Member States. The fine for non-compliance can be as much as £500,000.

The UK’s Information Commissioner’s Office (ICO) gave British websites a 12 month grace period to update their sites and published guidelines for compliance. This grace period ended on 26th May 2012.

What are cookies?

A cookie is a small file which is sent to your computer by a website. Many sites use them for things like storing site preferences, analysing web traffic, keeping you logged in and remembering shopping-basket items. Web browsers tend to automatically accept cookies but there are settings that allow you to customize how you deal with them. You can find more information about cookies, as well as find help on how to disable or delete them at aboutcookies.org.

How we use cookies

On this website, we use cookies for anonymous traffic statistics and to improve user experience. Technically, this site can also use cookies to keep track of logged in users and for post commenters. However, this functionality only applies to a limited set of website content editors. These cookies are not set for public visitors. For a list of cookies used on this site, please see the table below.

More information about the data we may collect can be found on our Privacy Policy page.

Your implied consent and how to opt-out

According to the ICO, “Implied consent is a valid form of consent and can be used in the context of compliance with the revised rules on cookies.” By continuing to use this website, we’ll assume you understand that your actions will result in cookies being set and have given your implied consent.

If you prefer not to have these cookies set, you may opt-out by configuring your browser to reject the cookies. Information on how to do this can be found at aboutcookies.org. Google provides a Browser Add-on for Chrome that enables you to opt out of all Google analytics.

Cookies on our clients’ sites

The kind of cookies we use for sites that we build depend on our clients’ requirements. Our general policy is to only use cookies that are needed for the operation of the site. Since we mostly install Drupal and WordPress content management systems, these include cookies that allow users to log in and post comments. When requested by the client, we also install traffic analysis code, such as Google Analytics, which also sets cookies to measure visitor statistics.

Sometimes a client wishes to display content from third-parties, such as advertising, games or ‘widgets’. These often also set cookies but we’d need to perform an audit to find out how they affect their site’s compliance.

Is your site compliant?

Please contact us if you’re not sure what kind of cookies are used on your own site. We will perform a cookie audit so that you can update your privacy policy in order to comply with the law.

More information

The table below describes the cookies we set on this site for public visitors.

[cookie_audit]

You might find these articles helpful.

Using Basecamp’s To Do feature

We use a web-based project management system called Basecamp which you can used to communicate with us. It allows you to send messages which are logged chronologically for your records. It also lets you assign tasks to us in the form of To-Do lists. This helps us keep track of outstanding tasks more efficiently.

This document gives a primer on how to use Basecamp’s To-Do system.

1. Log in to the Basecamp project management site

Log in to Basecamp using the details provided to you by our development team. If you don’t know your login details, you’ve probably been interacting with us via email only. See the section below for more information about Basecamp and how to set up your account.

2. Go to the To-Do section

Once logged in, you’ll see the Overview screen below. This shows the recent activity on your project. Click the To-Dos tab.

Image of Basecamp's To Do page

3. Add new To-Do item

The To-Do section should look a little like the screenshot below.

Image of Basecamp's add new to-do item screen

The main area shows the list of pending content updates. Below it is a section where you can enter new content updates in the form of a to-do item. The greyed-out portion below is a listing of recently completed content updates.

Setting up your Basecamp account

Basecamp is a third-party project management system that we use to organise projects. It helps keep you in the loop about the progress and gives you a way to interact with our development team. This tool can be more useful than communicating by email because you’ll find all related discussions, files and to-do items in one place. Other project members can also add their input by attaching comments.

Note that anything you add will be visible to team members listed in the ‘People’ section. Therefore, please contact me directly by email or phone if you’d like to discuss anything confidential, such as financial and billing details, or restricted intellectual property information.

At the start of our work together, you should have received an email that helps you set up your account on Basecamp. I would have looked like this:

Image of Basecamp's invitation email

If you can’t find the email and it’s not in your spam folder, let me know and I’ll get the email resent.

After you click on the link in the email, you should see a page that lets you enter your name, email address and password. Your account is created once this is done.

Image of Basecamp's setup screen

Q: Is there a standard list of things to test on my site?

There really isn’t a standard list because each site tends to have slightly different features. Generally, though, there are three main areas that should be tested:

(A) Technical (do the features work correctly?)
(B) Usability (is the site easy to use?)
(C) Accessibility (can visitors access the site’s content without too much trouble?)

Here’s a common list of technical things to check that would apply to most of our clients’ site:

  1. Does the site display on different browsers and operating systems? (Which browsers depend on your target market but usually they’d be Internet Explorer 7, 8 & 9, Firefox 11 & 12, Safari 5, Chrome 18. Operating systems for the general market would be Windows and Mac. We don’t usually consider mobile access unless it’s a feature that clients specifically request.)
  2. Are there any broken links?
  3. Are all the pages formatted so that all content is visible?
  4. Does the search facility turn up the correct results?
  5. Can you click through to the content images and do they expand and close to return you to the article?

As you can see, this is all pretty basic stuff because most of our site’s features aren’t too complex.

Because of this, I suggest that your user testing should mostly be focusing on non-technical aspects like (B) and (C). However, because the bulk of these areas are subjective, it’s difficult to come up with an actual list. Therefore, I would suggest having free form comment boxes for people to leave their feedback.

Another thing to note is that the UK and EU have legislation covering web accessibility. You can find out more about this via the following links:

  • http://www.web-accessibility.co.uk/legal.asp
  • http://www.w3.org/WAI/Policy/#UK
  • http://www.w3.org/WAI/Policy/#EU

Unfortunately, this topic is quite a complex and time consuming area and most companies and web developers know little about the subject. There are also doubts about how these laws can actually be enforced. Furthermore, there are no specific definitions on what exact standards must be met within the UK. Thus it is my experience that many web owners and developers simply ignore the issue.

My policy is that we use web-standards compliant technologies where possible. This resolves most accessibility issues within reason for the amount invested in development. However, if a client wants to meet specific standards compliance, we do this under our standard hourly rate as an added service.

Ultimately, this is a business decision to be made on the client end whether this should be a focus.

Q: Do you have sample terms and conditions we can use?

Generally, my clients tend use template-based terms and conditions when starting up. (They tend to take on paid legal advice later on, for example, after their venture has stabilized.)

Usually they ask about:

  1. Website usage terms
  2. Privacy policy (especially when they’re collecting data through online forms)

For those who are UK-based, I point them towards the Business Link website.

Edit 22 April 2013: It seems that the businesslink.gov.uk website has now been replaced by gov.uk and the above links no longer work. However, the sample privacy policy does still seem to be online for the time being at this link. (Microsoft .doc download, 28KB)

Q: What should we expect after signing-off a project with you?

Projects tend to vary for each client but the process goes as follows:

  1. I’ll send you an invoice for a 50% down-payment to cover for the start-up costs.
  2. You’ll receive log-in details to our project collaboration site. This will show some initial project time-scales and check-lists of what needs to be done.
  3. We’ll schedule your work as soon as we receive your down-payment remittance.

Timescales

From experience with many other projects, I now generally do not specify timescales for the stages in the initial work agreement or invoice. There are several reasons for this:

  1. For the majority of projects, the original timescales end up changing part way into the work. The reasons vary, such as a change of focus, new ideas for features and as is often the case with start-ups, an evolution in the business priorities.
  2. The stages themselves are not fixed and sometimes we end up running them concurrently, starting early or delaying them.

Instead, we work towards some broad milestones that are set by our clients. The milestones are set on our project collaboration site and are adjusted depending on how the project evolves.

Testing

Testing is another area where we differ slightly from some other web companies.

In my opinion, the best people to test the site are the clients themselves; you know better than anyone else how you expect things to work. We’re then guided by your observations.

This process helps keep our fee low because I don’t need to hire dedicated testers or get expensive programmers to do the job. It also skips the time intensive (and expensive) test specification documentation what would be necessary if we were to perform the tests thoroughly.

Testing is therefore more of a collaborative process with you.

For us, testing starts very early on in the project. The usual procedure many web companies follow is to give access to the site towards the end of the development process, only when things are ‘ready’ for the client to view.

I believe that it helps to let you loose on it early on because it gives you a realistic expectation of how things are going all the way through our work together. It also gives you a chance to ask questions and steer things in the right direction while we develop the site.

Testing period

Because of the above, I find that specifying a testing period in the contract usually isn’t very flexible.

It’s also quite difficult to stick to the period specified. For many clients, the website, while important, isn’t the only thing they must deal with in their business. In my experience, things nearly always come up that prevents them from dealing with the task during the allocated time.

For example, let’s take a client’s suggestion of a testing period of two days after delivery. I find  what happens in practical terms is that if I deliver, say, on Monday, the client would have a meeting on the Tuesday, then a series of calls for Wednesday and so on. Thus the testing period expired but the client was still unable to even look at the site.

Again, this is another reason why we actually start the testing process near the beginning of the project.

Of course, if you prefer to have the period specified in the contract, we can do our best to meet it but with the caveat that things might not turn out that way.

Customising the length of post summaries (or ‘teasers’) on your Drupal site

Many Drupal-based sites create summaries when you upload a post. These are often shown in listing pages that show the first paragraph or so of the post. These post summaries called ‘teasers’ in Drupal and are extracted automatically from the main text. The software makes its best guess about how much of the text to show but it doesn’t always look right.

You can manually tell Drupal where the teaser should end by inserting a special tag in the main editing box. To do just follow the steps below:

  1. Go to the edit screen of the page you’d like to edit.
  2. Click the ‘Disable rich-text’ link just below the ‘Description’ text input box.
  3. Enter the tag <!--break--> at the point you want the summary to end and click save.

Q: Can I use an email program such Outlook to send bulk mail?

Quite a few clients have asked if they can run an email marketing campaign through our servers using an email program like Microsoft Outlook. The main thing to note is that email accounts provided by our hosting company, Rackspace, are not really to be used for sending out bulk emails. Although it is technically possible this method is not recommended for several reasons:

  1. You may breach Rackspace’s terms of service
  2. It’s more error-prone and therefore the results are unreliable.
  3. There is no way to gather metrics such as view and click-through statistics.
  4. There is a risk of getting your domain blacklisted as a spam sender by ISPs. Once you’re on the blacklists, some or all of your email accounts will keep ending up in the recipient’s spam filters. It may be very difficult to get off the blacklists.

However, many of our clients are small and micro-business who send out nowhere near the levels of bulk mail as many larger corporations. I’ve therefore contacted Rackspace to ask what are the allowable limits under their Rackspace Cloud service. Based on their reply, you should be safe if you:

  • Send no more than 250 messages per 20 min
  • Send no more than 5,000 messages per day
  • Include an unsubscribe link in the messages (and act on the request)
  • Send only to people who’ve given you permission to contact them about this

Nevertheless, I recommend that you a dedicated bulk emailing service to send to your distribution lists. The catch is that there’s a fee and the legitimate ones are very strict with how you’ve gathered the email addresses. (They won’t allow you to send to people who haven’t given you their permission.) However, the messages are more professional and you’ll be able to track statistics such as the number of emails that have been opened, unsubscribed or bounced.

We use such a system and if you’re interested, I’ll be happy to put together a quotation for you. As a rough idea, our profile of clients tend to average approximately £10 per campaign to use the system.

For your reference, Rackspace have a Knowledge Center article that states the following:

If your application is going to be sending out single messages (or less than 25 messages at a time), we highly suggest using SMTP. SMTP is a better option for sending out small amounts of mail. If you have questions on configuring your application to use SMTP, please visit with a member of our support team.
On the other hand, you may need to use our mail relays if your application will be sending out messages to a larger mailing list. If that’s the case, please review the following rules for sending messages through our mail relays:
1. Your message must have a working unsubscribe link, which must be demonstrated to us upon request.
2. The message must have a valid Return Path. This means the message must have a valid from address listed in the message.
3. The message of the email can only refer to the domain the message is being sent from. This means “DomainA.com” cannot send messages for “DomainB.com.”
4. You must obtain Rackspace Site’s advance approval for any bulk or commercial e-mail, which will not be given unless you are able to demonstrate, at a minimum, that your intended recipients have given their consent to receive e-mail via some affirmative means, such as an opt-in procedure, your procedures for soliciting consent include reasonable means to ensure that the person giving consent is the owner of the e-mail address for which the consent is given, you retain evidence of the recipient’s consent in a form that may be promptly produced on request, and you honor the recipient’s and Rackspace Site’s requests to produce consent evidence within 72 hours of receipt of the request.
5. We do not allow bulk or commercial e-mail being sent to more than five-thousand (5,000) users per day at a rate of 250 messages every 20 minutes.
6. Rackspace Sites may test and otherwise monitor your compliance with its requirements, including requesting opt-in information from a random sample of your list at any time.