Adventures with WordPress & Business


Sharing Weekly Tues 7:30am EST
Subscribe

Batch SSL Checker


With the new Google Chrome release beginning to display non-secured warnings, now is a great time to begin rolling out HTTPS everywhere on all your client’s websites. The following is a bash script I wrote to help with the switchover process. I used the script to assist with making the SSL switchover with over 500+ WordPress websites. The script checks

Read More

When To Use WordPress Multisite


WordPress Multisite is powerful configuration of WordPress which allows you to run multiple websites, sharing a single WordPress installation. I think most developers tend to use WordPress Multisite for use cases which really should be separate installations. I know I have. If your considering using Multisite on a WordPress project, ask yourself the following. Are

Read More

Combining Multiple SQL Files


Have you ever attempted to migrate a WordPress website, and the only database backup available looked like this? Separate files for each table can be a pain to import manually. Thankfully it’s an easy problem to solve. Combine SQL Files from the Command Line Open up Terminal (on the Mac) and change directories to the

Read More

JS hacks with ManageWP


ManageWP is an amazing tool for managing all of your WordPress websites from a central dashboard. I use ManageWP to deploy plugin, theme, and security updates for my customers. Their tool is a powerful single page JS app. I discovered that you can do some pretty creative “coding” using Javascript right from the Google Chrome DevTools. Manually Updating Premium Plugins Sometimes

Read More

Drop the WWW


When you launch a new WordPress website, you need to decide WWW or no WWW for your site URL. That would be https://anchor.host vs https://www.anchor.host. WordPress is generally pretty smart. Assuming your DNS is correct, configuring your URL for one will automatically forward to the other. So which one is better? Stop Deciding and Drop the WWW There is no good

Read More

Using Trello to Manage Website Launches


Trello is an amazing organization tool. It can be used to help organize virtually anything. The following is an example of how you can use Trello to manage website launches. Create a Single Trello Board for All of Your Web Clients Each Trello board can be shared with everyone in your team. You can even add

Read More

Generating Accounts with Gravity Forms and MemberPress


Gravity Forms and MemberPress are paid plugins which solve very different problems. Both are developer friendly and extendible. The following is some custom code which runs after Gravity Forms creates a subscriber account and assigns it with a predefined MemberPress membership. // Hook into Gravity Forms User Registration. Runs after user has been registered add_action( ‘gform_user_registered’, ‘memberpress_membership_account_prep’, 10,

Read More

My setup for running WordPress maintenance and hosting service


I thought it would be fun to do a quick run through of the equipment, products and services I use to run my WordPress maintenance and hosting service. As you’ll quickly see, I’m a minimalist. Let’s start with equipment/workspace. Computer – 15″ Macbook Pro, Late 2016 with Touch Bar Backpack – Under-The-Jack Pack Phone – iPhone

Read More

Using WordPress to Document & Manage Business Processes


The following is a little something I wrote over the course of a weekend using ACF with two custom post types. My goal was to use WordPress to document all of my internal processes for running my WordPress maintenance and support business. Nothing crazy elaborate but it works for me. The main process page lists

Read More

Let 1Password Handle Your WordPress Logins


The push for a complex password is never ending. Having a really long and complicated password doesn’t have to be hard to use. With the right setup you’ll be more secure and more efficient with your time. Use a Password Management System If you’re not currently using a password management system, use 1Password. It will save you so

Read More

Production, Staging, Development oh my!


How you build and deploy a WordPress site will vary greatly depending on the project scope. The following are a few tips for dealing with production, staging and dev sites as a single developer working with a small business client. Start development locally using Git (Theme folders only). You might ask, why Git if I’m

Read More

Using Jetpack’s markdown on custom fields


Jetpack’s markdown module is easy way to add markdown to WordPress. If your not familiar with markdown then this is a good starting point. Out of the box you can use this on any WordPress page or post. Recently I was curious if I could use Jetpack’s markdown other places like custom fields. Turns out, yes and

Read More

WP Engine vs Kinsta comparing bulk site economics


I’ve been using WP Engine since mid 2014. I’m not a typical customer. Currently have 4 dedicated WP Engine servers containing 518 installs. A rough breakdown of the installs would be 10% high traffic, 10% normal traffic, 70% low traffic and 10% development only. I recently opened up a Kinsta account to run some comparison on economics

Read More

Using page template as custom API endpoint


The WordPress REST API is awesome and fully extendable to do your own custom crazy ideas. The following I’m about to explain goes against all of that. Instead of extending the WordPress REST API I’m creating my own custom API endpoint using nothing other then a custom page template. Learn APIs by building the most basic version from

Read More

WordPress plugin template for repeat tasks


Ever once in a while I have a customer with a custom PHP file running some daily batch process. Moving these over to a managed WordPress host can get well messy as there isn’t a great way to run a custom cron jobs. In order to keep things clean I like wrapping the custom PHP code into

Read More

When to not recommend WordPress


WordPress is awesome. I use WordPress for my business and all of my clients use it for their business. Recently I’ve been wondering if there a guide that people could use to figured out if WordPress is the best choice to them. One of my customers recently reached out to me for advice on what to do with

Read More

Resolving WordPress plugin conflicts


The WordPress plugin ecosystem is like the wild west. There are amazing companies producing quality plugins. There are also tons of lone rangers who put out unsupported and poorly written plugins. Plugin conflicts are inevitable and happen during plugin updates. Not doing updates is not an option so here is a framework for dealing with and resolving

Read More

WordPress.com stats via API


Every site I maintain get’s Jetpack installed with the Stats module activate. These stats are pretty basic. While they might not be as comprehensive as Google Analytics they are extremely powerful as they are accessible via the WordPress.com API. WordPress.com Rest API is not WP Rest API The WordPress.com Rest API is a product of Automatic.

Read More

Automating WP Engine’s user portal with Ruby script


There is a Ruby gem called Mechanize which is a powerful library for automating web interactions. While playing around with it over the course of a weekend I ended up making the following Ruby script can be run over the command line to login to WP Engine’s web user portal (my.wpengine.com) and do various tasks. #!/usr/bin/env ruby

Read More

Bulk domain record lookups with bash


Looking up domain records is a common daily task. Most of the time I use a website called MX Toolbox. That works great for single lookup. On occasion I need to do a bulk lookup for group of websites. While there are some websites that do bulk I found the best way is to simply run some

Read More

Injecting a custom mu-plugin for FTP deployments on WP Engine


Sometimes FTP is your only option In a world where we have such amazing tools like WP-CLI it’s hard to imagine why you’d want to attempt scripting over FTP. WP Engine doesn’t allow SSH access and FTP was really the only option if I wanted to automate things with their service. One time use mu-plugins It all starts with a mu-plugin. A

Read More

Manipulating Gravity Forms exports


Gravity Forms is my go to form plugin for WordPress. Recently a client asked to change the address state field to use state codes (example: PA) rather then full states (example: Pennsylvania). While I could replace the default address field with a custom dropdown field, I didn’t want to break any past enteries. Modifing the entries

Read More

Protecting static files with PHP script and WP Engine


There are many membership plugins for WordPress. A number of my customers run MemberPress which is a powerful and flexible membership plugin. I recently ran into a situation where images uploaded via the media library on restricted posts were getting shared by paid users and eventually picked up by Google and other search engines. After

Read More

Syncing large data with rclone


Ever once in a while I find myself in a situation where I need to move a large amount of data between a cloud storage provider and my local computer. Like moving 20GBs of photos to Google or pulling down 40GBs of backups from Amazon S3. This is all made simple with a single command line program

Read More

5 Ways to Sink a Potentially Great Website


The following was content for a presentation I did for Churchill Creative at their team meetup.  5 Ways to Sink a Potentially Great Website Make your menus as complicated as you can Overload your site with duplicate content Use sliders everywhere Make it as difficult as you can for someone to contact you BOLD AND CAPILTALIZE EVERYTHING, BECAUSE IT’S IMPORTANT!!!! Now that

Read More

Tracing emails to their source website


Every now and again I get a real email but no idea who it’s for. It’s actually more common then I’d like to admit. The only thing identifiable is that it came from a WordPress site running Gravity Forms something like the following. Most times this happens due to a misconfigured email notification or a

Read More

Disconnecting from Jetpack via API


Jetpack is one of those plugins I require on all of my sites. It’s a beast of a plugin with many modules. The two modules I always use are Stats and Monitor. From time to time I receive down notifications from Jetpack Monitor for a website which is no longer active. In those cases I just

Read More

Story about bad backups


Backups are typically only considered when you need them. That’s generally not the best time to find out if the backup is any good. Any good backup system also involves some trial runs to make sure the restores work. If you can’t restore from your backups, then you don’t have a backup. No one is immune to

Read More

When not to use custom fields


I love using Advanced Custom Fields to supercharge WordPress’ custom fields. With ACF, custom fields can be finely tuned to the needs of clients giving them a solid backend website experience. I recently attempted to use a custom field repeater with a large data set which I ended up scrapping due to PHP limitations. PHP has it’s own

Read More

Use a backup service, not a plugin


If you only have one copy of your data, it’s already lost. If you care about it you need a backup. Every website needs a backup as well. There are plenty of great backup plugins however I highly recommend using a backup service not a plugin. Problems with backup plugins There are plenty of backup plugins to

Read More

Make decisions for your clients with custom fields


Page builder plugins are hugely popular. I’m going to say it, I don’t like them. It’s not due to many of the reasons most commonly stated like poorly coded, no standardizations or too complex. Even if all of those issues were solved overnight a bigger issue still remains. That is page builder gives your client too many decisions.

Read More

Decide who handles your DNS


DNS is one of those things nobody thinks about unless there is a problem. When a DNS server goes down it takes down everything, website, email service, etc. To prevent this from ever happening you should use a DNS provider which has lots of redundancy and proven track record. You decide who handles your DNS When

Read More

Image optimization for all


Jetpack Photon is free, quick and easy Image optimization is one of those things you really shouldn’t have to think about. The best way to not think about it is to use Jetpack Photon. With Photon enabled all of your images will be served optimized for free from WordPress’ servers. With Jetpack active and linked,

Read More

Form notifications that work


Nearly every website has a contact form. It’s the first place potential customers go. Making sure you never miss a message is critical. The following 2 tips will make sure nothing slips through your WordPress site. Tip 1: Use an Email provider Web hosts are good at one thing, hosting. Email is best done with through an

Read More

Successful website migrations are more then a tool


There are many great tools to help move a website from one server to another. My go to plugin is WP Migrate DB Pro. As a service I really like ManageWP. Any tool or service you use to move a website can only go so far. A successful website migration typically includes more then just moving the website. Other things to consider include domains,

Read More

Hacking WP Engine’s web based WP-CLI


Last year WP Engine started rolling out WP-CLI to select partners. I was glad to be included in one of the early batches. Their implementation of WP-CLI is partial, excluding a number of commands. Also calling it “command line” is a bit of a stretch as everything is done through the web browser. Even so, this

Read More

Backing up hundreds of sites on WP Engine


Effectively backing up hundreds/thousands of WordPress sites can be tricky. Most solutions like VaultPress become crazy expensive as they charge per site. For example 100 sites X $165/year for VaultPress Basic = $16,500/year. Other options like CodeGuard and Mover, while significantly cheaper then VaultPress, are still multiple thousands of dollars a year. Then there are management tools like InfiniteWP which lack

Read More

Introducing Anchor Hosting


Clients and Friends, Today, I’m announcing that Anchor Development will now be known as Anchor Hosting. The new name signifies an even stronger focus on providing the best WordPress hosting solution for small businesses. I put together a short FAQ which will answer most of your questions. I didn’t know you provide hosting?  Yep, in fact

Read More