open_basedir restriction in effect. File(/) is not within the allowed path(s) in WordPress [Solved]

After a WordPress site move to new hosting, some images wouldn’t load and investigating the php error log revealed:

open_basedir restriction in effect. File(/) is not within the allowed path(s)

The solutions was to edit the database using phpMyAdmin, go to the table wp_options and set the correct value for upload_path.

Mega Menu doesn’t display down arrow for submenus

The WordPress plugin Mega Menu has the possibility to display a “down arrow” for a menu item where a submenu is available (i.e. the menu item has “children”). The problem was that the arrow was not displaying.

It turned out it was a collission with the theme, Cherry Framework 4. In the settings of the theme’s native menu, there is a possibility to enable “arrow markups”. When this is enabled in Cherry Framework 4, the arrows in Mega Menu is not displayed.

Solution: Go to Cherry -> Options -> Navigation -> Set Arrows Markup = off

Cherry Framework 4 header not using full page width when breadcrumbs are disabled

When you disable breadcrumbs in Cherry Framework 4, it still reserves space for it in the header/title section of the page. This is a bit annoying, because it makes the title wrap when there still is space on the right side.

A simple CSS solution can fix this. By applying this, the breadcrumbs will not be visible even if they are enabled again.

.cherry-breadcrumbs .col-md-5 { /* no breadcrumbs, title in full width */
width: 100%;
}
.cherry-breadcrumbs .col-md-7 { /* no breadcrumbs, hide the breadcrumb container */
display: none;
}

Where is WordPress links / blogroll?

In older WordPress installations there was a possibility to handle links. I recently installed a new WordPress 4.9 and I can’t find links (or blogroll). i.e. the Link Manager, anymore. Where is it?

From version 3.5 of WordPress, the Links section is not visible anymore if there were no links present or if it is a new installation.

If you want it back, you can download Link Manager here.

How to keep WordPress widgets when switching themes

When you switch from one theme to another in WordPress you will discover that all widgets you had is gone. Is there a way to keep the widgets when switching themes?

Short answer is – no. The widgets are set specifically for the theme.

But it is often quite simple to resolve the situation. After you switch theme, go to Appearance -> Widgets and scroll down to the bottom of the page.

Here you will find Inactive widgets. You can simply pull them back into your new theme’s widget position and get them back where you want them.

WordPress widgets

WordPress widgets

However, if the widgets you were using was part of the theme you switched from, they will not be available when using the new theme so in that case you need to find an alternative plugin or widget.

SiteOrigin Pagebuilder and widgets not working after site move / migration [solution]

Normally when moving, mirating or deploying a WordPress site, I use the Akeeba Backup plugin for WordPress. This works excellent, also for sites built using SiteOrigin Pagebuilder and SiteOrigin widgets bundle.

If, for some reason, it is not possible to use Akeeba Backup and a more traditional approach is used, like transferring the files using FTP, dumping the database to a SQL file, replacing the urls in the SQL file from the old url to the new, you will run into trouble if the old and new urls have different lengths (number of characters) because Pagebuilder uses something called serialization.

However, there is a solution:

  1. Transfer all the site files using FTP to the new server
  2. Edit wp-config.php on the new server regarding database host, database name, database username and database password
  3. On the old server, use for example phpmyadmin to export the database to a SQL file
  4. On the new server, import the SQL file using for example phpmyadmin
  5. In phpmyadmin on the new server, go to the PREFIX_options table and find the key siteurl and update it to the new url (do not change anything else)
  6. Log in to wp-admin on the new server and install the Better Search and Replace plugin (this one handles serialization)
  7. Go to Tools -> Better Search & Replace
  8. Enter your old url in the “Search for field” and the new url in the “Replace with” field
  9. Click the “Run Search/Replace” button (this will simulate the search and replace process)
  10. If everything looks normal and it reports there are a number of replacement possible, deselect “Run as dry run” and click the button again

Footer widgets not displaying when using Cherry Framework 4 for WordPress

To make the footer widgets visible when using the Cherry Framework 4 template for WordPress:

  • Under Cherry in the backend menu, select Static Area Builder
  • In the Footer Top section, click on the Footer Sidebars
  • In the .col-xs-*, .col-sm-*, .col-md-* and .col-lg-* select the desired widget size for each screen size (i.e. select anyting else than “none” to make the footer widgets visible)
  • Click Save statics (bottom right of the screen)

Problem sending email on form submission in WordPress

Adding a form to your WordPress website is normally done by using a plugin for it, like Contact Form 7 for example. At some hosting providers, there can be a problem for the plugin to send emails to you when someone is posting through the form. To prevent spam through forms, many hosting providers disable the PHP mail function that is used in WordPress to send emails, causing for example form plugins not being able to send emails.

The solution is to set up WordPress to use SMTP, preferrably with authentication, to send the emails through a real email server. To do this you need a plugin like WP Mail SMTP. Set it up either with the hosting provider’s SMTP server or use the one you normally use for email.

PHP Parse error: syntax error, unexpected end of file in XXXXX.php

  • Check that you have spaces around curly braces, i.e. for example don’t use <?php}?> but instead use <?php } ?>
  • If your script has been running without problems on earlier versions of PHP but you are now running PHP 5.4 or later, replace all occurrences of <? with <?php